問題タブ [cloneable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - クローン可能なオブジェクトを含む配列のクローンに関する説明が必要です
次のコードを試しています:
コードで指定されているように strValuArrayClone オブジェクトを変更すると、クローンを作成しているにもかかわらず、この変更が strValueArray オブジェクトにも反映されます。ただし、以下のコードを試すと、すべてがスムーズに機能します。その背後にあるロジックを理解したい。
java - CloneNotSupportedException をスローするのはどのクラスですか? または instanceof Cloneable はどこでチェックされますか?
クラスのオブジェクトを複製するには、Cloneable インターフェイスを実装し、clone メソッドをオーバーライドします。
上記の super.clone() は、オブジェクトのネイティブ API clone() を呼び出します。
Serializable の場合、 instanceof チェックは ObjectOutputStream クラスで行われます。同様に、オブジェクトがインスタンスの Cloneable であるかどうかをコンパイラがどこでチェックするかを調べようとしていますか? チェックはネイティブで実行されますか?
java - 「clone()」で Java デスクトップ アプリケーションのパフォーマンスが低下する
3D OpenGL LWJGL ゲームを作成しています。3D float ベクトルのクラスをその汎用バージョンに置き換え、「Cloneable」から「clone()」メソッドを実装しました。その後、パフォーマンスが大幅に低下します (GC の使用率が 1% 未満から 10% になりました)。変更前と変更後のベクター エディションのコード例を次に示します。
前:
後:
しかし、コードは実際にはまったく同じことを行うため、まったく意味がありません。
java - clone() メソッドの結果の出力
注意: 以前、この質問と他のいくつかの質問を含む投稿を作成しましたが、同じ投稿で非常に多くの質問をしているため、個々の質問に分割したほうがよいと言われました。したがって、これを重複としてマークしないでください。はい、指示は同じで、同じコードが使用されていますが、質問自体は異なります。ありがとう。
私は次の指示でプログラムに取り組んでいます:
GeometryObject を拡張し、Comparable および Cloneable インターフェースを実装する Octagon という名前のクラスを記述します。八角形の 8 つの辺はすべて同じサイズであると仮定します。面積は、次の式を使用して計算できます。
面積 = (2 + 4/2 の平方根) * 側面 * 側面
ファイルから一連の値を読み取り、面積と周囲を表示し、クローンを作成し、オブジェクトとそのクローンを (面積に基づいて) 比較するプログラム (ドライバー) を作成します。さらに、プログラムは、現在のオブジェクト (読み込まれたばかり) を最初に読み込まれたオブジェクトと比較する必要があります。ファイルから負の数が読み込まれると、プログラムは終了します。
ここに私がこれまでに持っているコードがあります.これは私のGeometricObjectクラスです:
私のオクタゴンクラス:
そして、私のドライバーまたはテスタークラス: (これは私が最も助けが必要な場所です):
そして、これが入力を取得するために使用されているファイルです。各線は 1 つの八角形です。
プログラムは元のオブジェクトとそのクローンを正しく比較していますが、希望する方法で印刷するのに問題があります。
上記のコードが書かれているので、ここに私の出力があります:
しかし、次のようにする必要があります。
これはおそらく Octagon クラスの toString() メソッドに問題があるように感じます。そこから getArea() と getPerimeter() を出力しているためですが、return ステートメントで cloneComparison を使用してコンパイルすることはできません。
toString() メソッドの return ステートメントで試したことには、次のようなものがあります。
どんな入力でも大歓迎です。
java - Cloneable の現代の代替品は?
Cloneable
修理できないほど壊れていることはよく知られています (詳細については、この質問の説明を参照してください)。
代替案と「どうすれば正しく行うか」に関する最後の質問は、数年前のものです。
- Clone を Java で実装する代わりの方法はありますか?
- clone メソッドを適切にオーバーライドするには?
- Clone() vs Copy コンストラクター - Java で推奨されている
- clone() 対コピーコンストラクター対ファクトリーメソッド?
- Java でのポリモーフィック コピー
- Object.clone の代わりにコピー コンストラクターを使用してディープ コピーする適切な方法
そこで、次のように再質問します。
現代(2014年)の代替品はCloneable
何ですか?
汎用ソリューションを探しています。次の要件を想像できました。
Copyable
クラスが実装するある種のインターフェース:A extends Copyable
.- ディープコピー。
A
のインスタンスが のインスタンスを参照する場合、B
新しいa.copy()
を参照する必要がありますb.copy()
。 - 指定されたターゲットにコピーします:
a.copyTo(a1)
。 - ポリモーフィック コピー:
B
extendsのA
場合、 froma.copyTo(b)
のすべてのプロパティをto にコピーする必要があります。B
a
b
もちろん、これらすべてを自分で実装することはできますが、これには標準インターフェースを用意するのが合理的ではないでしょうか? または、何か不足していますか?
私のコンテキストの背景のビット。私は JAXB とスキーマ派生クラスをよく使用しています。多くの場合、これらのクラスをディープ コピーすると非常に便利です。数年前、私はいくつかの JAXB スキーマ コンパイラ プラグインを作成しcopyTo
て、上記の要件 (およびそれ以上) を実装するメソッドを生成しました。独自のランタイム API を使用する必要がありました。今、私はケースを再検討していて、標準的な解決策があるかどうかを尋ねることにしました.
java - Cloneable を実装し、CloneNotSupportedException を宣言しているが、CloneNotSupportedException を取得している
さまざまなオブジェクトを取り込むセットを構築するプログラムを作成しています。ただし、セットを複製しようとすると、CloneNotSupportedException を宣言し、Cloneable インターフェイスを実装しているにもかかわらず、CloneNotSupportedException が発生します。
これがコードです。
どんな助けでも大歓迎です。