[英]Setting all properties from Java bean to another
假設我有一個帶有某些屬性的Java bean,例如Employee。
我想將Employee的所有屬性復制到同一Java bean的另一個實例。
一種解決方案是使用getter獲取屬性並將其設置為另一個實例。 但是,如果POJO中有許多屬性,那將很耗時。
有沒有更快的方法可以達到相同目的?
如assylias所述,復制bean所花費的時間非常短。 除非您需要每秒執行幾百萬次。
重要的一點(我認為)是減少愚蠢的代碼量,因此要“復制” bean,可以使其擴展為Clonable ,其余的將由JVM完成。 您只需要調用bean.clone()。
另一個更靈活的選擇是使用Apache BeanUtils ,它可以使用反射在對象之間進行復制。
Object.clone
執行淺表副本,因此您最好滾動自己的副本構造函數:
public class Dog {
public final List<String> names;
public int age;
public int weight;
public Dog() {
names = new ArrayList<String>();
}
protected Dog(Dog original) {
names = new ArrayList<String>(original.names);
age = original.age;
weight = original.weight;
}
public Dog copy() {
return new Dog(this);
}
}
如果只有少數幾個類支持克隆,則覆蓋clone()可能是最快的解決方案。 否則,如果您需要通用解決方案,請不要重新發明輪子:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.