マップを持つオブジェクトを作成しようとして、このコードを書きました。
public class MyClass {
private static Map<String, List<String>> myMap;
public MyClass() {
myMap = new TreeMap<String, List<String>>();
}
public void putValueInMap() { //etc... }
public void toString() { //etc...}
}
でも、2つ作ってみると、同じ物に見える!
public class Driver {
public static void main(String[] args) {
System.out.println("Testing Constructor: ");
MyClass nope = new MyClass();
MyClass wut = new MyClass();
System.out.println("nvl" + nope.toString());
System.out.println("wut" + wut.toString());
try {
nvl.addValue("this is a", "test");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("****added this is a:test****");
System.out.println("nope" + nvl.toString());
System.out.println("wut" + wut.toString());
}
}
私が得ている出力は次のとおりです。
Testing Constructor:
nope[]
wut[]
****added this is a:test****
nope[this is a:test]
wut[this is a:test]
nope と wut が同じオブジェクトを参照しているのはなぜですか?