天天看點

JAVA 将一個對象的所有字段值 賦給另一個 對象

如題,這種場景其實項目裡使用場景很多,經常需要進行這種對象值的複用,但是又怕使用不準确,影響到原對象的值。

那麼該篇文章介紹一個方法,簡單粗暴,就是使用BeanUtils。

JAVA 将一個對象的所有字段值 賦給另一個 對象

是以我們使用的是:

JAVA 将一個對象的所有字段值 賦給另一個 對象

簡單示例:

Dog,裡面有兩個字段(構造方法,setget省略):

JAVA 将一個對象的所有字段值 賦給另一個 對象

 而SpecialDog裡面有三個字段,其中name和age是一樣的,但是多了一個nickName字段,

JAVA 将一個對象的所有字段值 賦給另一個 對象

一般經常看到這種代碼:

JAVA 将一個對象的所有字段值 賦給另一個 對象

現在隻需要:

BeanUtils.copyProperties(dog, specialDog);

JAVA 将一個對象的所有字段值 賦給另一個 對象

把dog字段屬性指派給specialDog。

檢驗一下:

public static void main(String[] args) throws Exception {


        Dog dog=new Dog("kiki",1);
        SpecialDog specialDog=new SpecialDog();
        BeanUtils.copyProperties(dog, specialDog);
        dog.setName("lulu");
        System.out.println(specialDog.toString());
        System.out.println(dog.toString());
        

    }
           

結果:

JAVA 将一個對象的所有字段值 賦給另一個 對象

 可以看到屬性值已經指派成功了,而且修改dog不影響specialDog的屬性(注意這裡的場景沒有涉及到引用别的對象的使用,如果涉及到要注意了,BeanUtils.copyProperties是淺拷貝 ,淺拷貝出來的對象和原對象 中 的引用的對象都會同時受修改影響,因為淺拷貝出來,類内引用的其他對象都是同個對象)。

OK,該篇介紹就到此吧。