2

従業員などの Java Bean にいくつかのプロパティがあるとします。
Employee のすべてのプロパティを同じ Java Bean の別のインスタンスにコピーしたいと考えています。

1 つの解決策は、getter を使用してプロパティを取得し、それを別のインスタンスに設定することです。ただし、POJO に多くのプロパティがある場合、これには時間がかかります。

同じことを達成するためのより速い方法はありますか?

4

3 に答える 3

1

assylias が述べたように、Bean をコピーするのにかかる時間は非常に短いです。これを1秒間に数百万回行う必要がない限り。

重要な部分 (私が思うに) は、ばかげたコードの量を減らすことです。そのため、Bean を「コピー」するには、それをClonableに拡張することができ、残りは JVM が行います。bean.clone() を呼び出すだけです。

別のより柔軟なオプションは、リフレクションを使用してオブジェクト間でコピーできるApache BeanUtilsを使用することです。

于 2012-10-07T10:38:56.843 に答える
0

クローン作成をサポートするクラスが数個しかない場合は、 clone() をオーバーライドすることが最速のソリューションになる可能性があります。それ以外の場合、一般的な解決策が必要な場合は、車輪を再発明しないでください。

于 2012-10-07T10:56:39.023 に答える
0

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);
    }
}

称賛

于 2012-10-07T10:40:16.420 に答える