問題タブ [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.

0 投票する
2 に答える
48 参照

java - 同じクラスからクラス オブジェクト A を参照できませんか?

車は私にシンボルを見つけることができません。コピー コンストラクターとクローン メソッドを使用するクラスを作成しようとしていますが、解決できないエラーが発生しました。私は30分間頭をかきむしっています。

0 投票する
3 に答える
777 参照

java - オブジェクトを複製可能にしてはいけないのはなぜですか?

Object の clone() メソッドと Cloneable Interface に関する多くのスレッドを読みましたが、私の質問に対する正当な答えを見つけることができませんでした。簡単に言えば:

私が理解したのは、 Object には、オブジェクトを「魔法のように」複製できる clone() メソッドがあるということです。ただし、Cloneable Interface を実装せずにそのメソッドを使用することはできません。このインターフェイスにより、Object は clone() メソッドを使用できるようになるためです。それで、なぜ彼らはそれをしたのですか?すべてのオブジェクトを最初から複製可能にすべきではないのはなぜですか?

0 投票する
3 に答える
5151 参照

java - Java クローニングの利点

Java のクローン作成に関するチュートリアルをオンラインで探していましたが、clone() の欠点しか見つかりませんでした。利点については何も見つかりませんでした。Java clone() を使用する利点をいくつか知りたいです。

0 投票する
5 に答える
13072 参照

java - Java のプロトタイプ パターン - clone() メソッド

それで、私はデザインパターンについて読んでいますが、プロトタイプパターンは私を混乱させます。これを使用するポイントの 1 つは、 new演算子を使用する必要がなくなることだと思います。次に、この例を見てください。

http://source Making.com/design_patterns/prototype/java/1

まず、彼らのプロトタイプのアイデアは clone() メソッドを実装していますが、これは奇妙です。ウィキペディアには、サブクラスによって実装される純粋な仮想メソッドのクローンが必要であるとも書かれています (なぜですか?)。Java はすでにそのようなメソッドを提供しており、必要なことを正確に実行します (つまり、オブジェクトを最初からインスタンス化するのではなく、オブジェクトのコピーを作成します)。次に、clone メソッドは演算子new !を呼び出します。確かに例は間違っていますか?(その場合、別の場所でデザイン パターンを勉強する必要がありますね?)。この修正が正しいかどうか誰かが教えてくれますか?:

説明をいただければ幸いです。

0 投票する
4 に答える
192 参照

c# - Clone() を正しく入力できないのはなぜですか?

他の C# プログラマーと同様に、オブジェクトのコピーをどのように表現するのが最善かという問題に直面しています。具体的には、すべてのオブジェクトがコピー可能でなければならないクラス階層があります。 コピー コンストラクター ( C# では提供されません) を使用するか、メソッドを使用するかについては、既に説明しました。もう 1 つのオプションは、オブジェクトを取得してコピーを作成するメソッドを使用することです。すべてのオプションには長所と短所がありますが、それらすべてに共通する 1 つの問題は、入力の問題です。Clone()

可能な限り、元のオブジェクトと同じ型のオブジェクトを常に生成するクラス階層内のすべてのオブジェクトにコピー操作が存在することを述べたいと思います-これに対する違反がコンパイル時に報告されるように時間。

これら 3 つのオプションのいずれも、ジェネリックを使用してもこれを行うことはできません。どうやら、C# ではまったく実行できません。Javaや私が知っている他の言語もそうではありません。

なぜだめですか?型システムのそのような機能を実装するのは難しすぎますか? それは矛盾を引き起こしますか?正確に型付けされたコピー操作が必要な場合は、特殊なケースと見なされますか? 私が見逃したこれを達成する他の方法はありますか?

PS: この質問は、浅いコピーと深いコピーの違い、コピー方法、またはコピー行うかどうかに関するものではないことに注意してください。