簡體   English   中英

將Java Bean的所有屬性設置為另一個

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM