如題,這種場景其實項目裡使用場景很多,經常需要進行這種對象值的複用,但是又怕使用不準确,影響到原對象的值。
那麼該篇文章介紹一個方法,簡單粗暴,就是使用BeanUtils。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBHL0FWby9mZvwVZnFWbp1zczV2YvJHctM3cv1Ce-cWW00kMOlmQE1EbsR1TopVbOFTQU9EMjRkWwE1VZhXTX5UbKR0TzUVbZ1WOTplbGdlYwFTeZ5mQzwEbk12YohnMMRXOykVdjdlYwZ1RkVjStxEMShFT4F0MMZ3bENGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
是以我們使用的是:
簡單示例:
Dog,裡面有兩個字段(構造方法,setget省略):
而SpecialDog裡面有三個字段,其中name和age是一樣的,但是多了一個nickName字段,
一般經常看到這種代碼:
現在隻需要:
BeanUtils.copyProperties(dog, specialDog);
把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());
}
結果:
可以看到屬性值已經指派成功了,而且修改dog不影響specialDog的屬性(注意這裡的場景沒有涉及到引用别的對象的使用,如果涉及到要注意了,BeanUtils.copyProperties是淺拷貝 ,淺拷貝出來的對象和原對象 中 的引用的對象都會同時受修改影響,因為淺拷貝出來,類内引用的其他對象都是同個對象)。
OK,該篇介紹就到此吧。