• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java オブジェクトのコピーについて)

Java オブジェクトのコピーについて

このQ&Aのポイント
  • Javaのオブジェクトのコピーについてわからない部分があります。具体的には、変数のメモリ上のアドレスを別のオブジェクトにコピーしたい場合の方法について教えてください。
  • 現在のコードでは、変数のメモリ上のアドレスが格納されているだけで、値の変更が他のオブジェクトにも影響を与えてしまいます。どのようにして別のアドレスでコピーすることができるのでしょうか。
  • Javaのオブジェクトのコピーについて詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

文法的におかしいところが多くて、何をしたいのかが読み取りにくいです。 > hoge1.ab.get(0).a = {"4","5","6"}とした場合に、 hoge1.ab.get(0)の返り値型はString[]なので、そこに.aをつけることはできません。 .aがないとしても、hoge1.ab.get(0) = {"4","5","6"};という書き方は許されていません。 hoge1.ab.get(0)[2] = "XYZ";だったら可能ですが。 この辺がはっきりしないと、ArrayListの複製を作ればいいだけなのかArrayListの要素のString[]も複製しなければいけないのかが曖昧です。 ANo.1さんのthis.ab.addAll(ab)は、複数回setAb()が呼ばれた場合の挙動が心配です。 > List<String[]> ab = new ArrayList<String[]>; これもセミコロンの前の()が不足しています。 あと、setAB()の返り値型の指定も抜けています。

kyanki
質問者

お礼

数々のご指摘ありがとうございます。 目的としては、最終的に[hoge1][hoge2]に[ab]をセットする際に、 変数[a][b]を別のアドレスで登録したかったのですが・・・ 私の説明力の無さと、処理が間違いだらけなので、 今回は一旦閉めさせていただきます。 もう少し煮詰めてから再度投稿したいと思います。 その際にはまたよろしくお願いいたします。 回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sacra04
  • ベストアンサー率33% (1/3)
回答No.1

TypeABクラスのsetABメソッド内部の処理を、 this.ab.addAll(ab) でうまく動作するかな…?携帯からなので、動作確認ができないですが。。。 getter/setterがあるので、TypeABクラスの変数abはprivate変数にした方がいいですよ。

kyanki
質問者

お礼

申し訳ありません。 目的が明確でない上に、処理が間違いだらけでした。 もう少し煮詰めてから投稿いたします。 回答ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A