問題タブ [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.
java - オブジェクトからのメソッド clone() が表示されませんか?
質問:
ここで、クラス 'MyClass' は、'Object' クラスで clone メソッドを呼び出すことにより、独自のオブジェクトを複製できます。同じパッケージ 'GoodQuestions' 内の別のクラス ('TestSingleTon') でこのクラス ('MyClass') のクローンを作成しようとすると、次のコンパイル時エラーがスローされます。
「Object 型のメソッド clone() は表示されません」
上記のエラーをスローするコードは次のとおりです。
java - クローン可能型をJava汎用クラスのパラメーターとして使用する方法
パラメータタイプのオブジェクトを複製できるようにする必要があるジェネリッククラスがあります。非常に簡単な例を以下に示します。コンパイラは、Object型のclone()が表示されないと主張しています。
オブジェクトの整合性を維持するために発生しなければならないことが他にもあるので、呼び出し元にクローンを作成させたくありません。上記のコードは、クローンオブジェクトに関連して維持する必要のある他のデータのノイズがない問題の単なる例示です。
これを回避する方法はありますか、それともJavaの設計者がJavaの設計者が欠点を合理化することを、何も持たないことと同等と見なすケースの1つですか?
java - Javaでのシリアライズ可能、クローン可能、およびメモリの使用
HashMapのサブクラスである内部クラスを使用しています。私はString
キーとdouble[]
値としてを持っています。1つあたり約200のダブルを保存しdouble[]
ます。キー、ポインター、およびダブルを格納するために約700MBを使用する必要があります。ただし、メモリ分析では、それよりもはるかに多く(2 GB強)が必要であることがわかりました。
TIJmp (プロファイリングツール)を使用すると、メモリ全体のほぼ半分を使用していることがわかりました。char[]
TIJmpはそれがとchar[]
から来たSerializable
と言ったCloneable
。その中の値は、フォントとデフォルトのパスのリストからメッセージと単一の文字までの範囲でした。
Serializable
JVMでの正確な動作は何ですか?したがって、常に「永続的な」コピーを保持し、メモリフットプリントのサイズを2倍にしますか?JVMをメモリを大量に消費することなく、実行時にオブジェクトのバイナリコピーを書き込むにはどうすればよいですか?
PS:メモリ消費量が最も増える方法は以下のとおりです。このファイルには、約229,000行と1行あたり202フィールドがあります。
Oh !、そしてHashMapXは次のように宣言された内部クラスです:
java - 整数の複製
クローン可能なインターフェイスを実装するクラス Integer のオブジェクトをクローンしようとしています。
これには回避策があることは知っていますが、このように実装する必要があります。このエラーが発生する理由 =
clone()
has protected access injava.lang.Object
なぜこれを言うのでしょうか?クローンメソッドは、クローン可能なインターフェイスのパブリック抽象メソッドではありませんか、オブジェクトと何の関係がありますか。前もって感謝します :-)
java - JavaインターフェイスはCloneableを拡張します
次のことができない理由がわかりません。
しかし、これはうまくいきます
Cloneableはどうなりますか?
ありがとう、
java - 1つのエントリだけを変更するためのモデルを複製するための最良の方法はありますか?
いくつかのフィールドを持つモデルがあり、このモデルのデータベースに新しいエントリを追加したいのですが、フィールドを1つだけ変更します。新しいインスタンスを作成したり、フィールドごとに1つずつ設定したりせずに、これを行うための最良の方法はありますか?
場合 :
そして私が実際に持っているコード
私が探しているのは、次のようなことです。
また
しかし、そのようにすることが正しいかどうかはわかりません。
c# - JavaのSerializableやCloneableのようなマーカーインターフェイスのデザインはC#で進化しましたか?
Javaはjava.io.Serializable
、java.lang.Cloneable
彼の標準ライブラリ(および言語とJVMでの特別なサポート)で、逆シリアル化/シリアル化/クローン作成に関するタスクを提供します。
C#はこの機能を提供するために別のパスを選択しましたか?それを使用する実装とコードはJavaとどのように異なり、なぜこのように行われたのですか?
例として、C#がシリアル化に属性(アノテーション)とインターフェイスの両方を使用するのはなぜですか?
java - クローンを理解できません
オブジェクトを複製する簡単なプログラムがあります。「スレッド "main" java.lang.CloneNotSupportedException: で例外が発生しました:」というエラーをグーグル検索しましたが、エラーを理解するためにあなたの助けが必要です。obj1 の複製を取得できないのはなぜですか?
java - Java パブリック クローン インターフェイス
このようなインターフェイスを作成し、変数がクローン可能であることを確認する必要がある場所でそれを使用することについて何か悪いことや間違っていることはありますか?
これは、Java の Cloneable インターフェイスが壊れているという事実に関連する SO の質問であり、なぜこのように実装されていないのか理解できません。
java - 戻り型のあいまいさ
The Java Programming Language book の次のコードを検討してください。
オーバーライドする clone() 関数がすでに戻り値の型を MyClass として種付けしている場合、return ステートメントでそれを再度指定する要件は何ですか? また、Myclass のスーパー クラス オブジェクトのクローンが作成されているため (clone() が wrt スーパークラスと呼ばれているため)、どうして Myclass 型になるのでしょうか?
前もって感謝します