Java オブジェクトのコピーについて
Java オブジェクトのコピーについて
現在、Javaの勉強を行っているのですが、
オブジェクトのコピーについてどうしてもわからない部分があります。
以下についてご教授お願いいたします。
-----------------------------
(型定義)
public class TypeAB{
List<String[]> ab = new ArrayList<String[]>;
public List<String[]> getAb(){
return ab;
}
public setAb(List<String[]> ab){
this.ab = ab;
}
}
------------------------------
public class mst{
private void function(){
TypeAB hoge1 = new TypeAB();
TypeAB hoge2 = new TypeAB();
List<String[]> ab = new ArrayList<String[]>;
String[] a = {"1","2","3"};
String[] b = {"4","5","6"};
ab.add(a);
ab.add(b);
hoge1.setAb(ab);
hoge2.setAb(ab);
}
}
------------------------------
上記処理についてなのですが、
現在のままでは、最終的な[hoge][hoge1]には
変数[a][b]のメモリ上のアドレスが格納されているだけで、
hoge1.ab.get(0).a = {"4","5","6"}とした場合に、
hoge2の変数[a]の値まで変わってしまいます。
これをどうにかして最終的な、
hoge1.setAb(ab);
hoge2.setAb(ab);
の部分で別アドレスでコピーしたいのです。
言語:Java
フレームワーク:SAStrutsです。
よろしくお願いいたします。