0

クローンが使用されている実用的な使用法を誰か教えてもらえますか?クローンがどのように行われ、どのような種類があるかは理解していますが、実際の使用法はわかりません。また、オブジェクトの状態を保存するために使用されることをどこかで読みましたが、オブジェクトの状態全体がそれほど重要になることはめったにないと思います。

4

2 に答える 2

0

オブジェクト X 内にカプセル化されたオブジェクト y (たとえばプライベート) があるが、アクセサ メソッド (getY() など) を提供する場合、プライベート オブジェクトへの参照を返すリスクがあり、これは良くありません。クライアント コードがそれへの参照を取得できないようにする必要があります。その代わりに、getY() 内でオブジェクトをコピーまたは複製することができます。前述のように、クローンよりもコピーの方がおそらく好ましいですが、効果的な Java 項目 11 を参照してください。

コード例は次のとおりです。

public class X {
    private Date y = new Date();

    // other code here

    public Date getY() {
        //this could be bad:
        //return y;
        //this is good:
        return new Date(y);
    }
于 2013-05-09T16:03:36.360 に答える
0

オブジェクトのプロパティをフォームにロードし、各プロパティを (テキストボックス、コンボボックス、...) にバインドし、(テキストボックス、チェックボックス、...) に変更を加えた後、キャンセルしても取得できない場合があります。元の値なので、複製が最適なオプションです。

オブジェクトのクローンを作成してからバインドします。元のオブジェクトをキャンセルする場合は常に変更されません。これは 1 つのケースにすぎません

于 2013-05-09T15:48:20.633 に答える