1

クラスのオブジェクトを複製するには、Cloneable インターフェイスを実装し、clone メソッドをオーバーライドします。

protected Object clone() throws CloneNotSupportedException{
        return super.clone();
    }

上記の super.clone() は、オブジェクトのネイティブ API clone() を呼び出します。

Serializable の場合、 instanceof チェックは ObjectOutputStream クラスで行われます。同様に、オブジェクトがインスタンスの Cloneable であるかどうかをコンパイラがどこでチェックするかを調べようとしていますか? チェックはネイティブで実行されますか?

4

1 に答える 1

0

Objectすでにクラスのクローン実装である場合、コンパイラがこれをチェックする必要があるのはなぜですか。例外はCloneable、他のサービスを提供するために実装する必要がある他の実装に関連しています。実際、シリアル化にはSerializable実装が必要です。その後、ユーザーCloneableは必要な実装を選択/調整できます。

于 2014-06-08T12:14:49.250 に答える