我有
SomeClass sc1 = new SomeClass();
SomeClass sc2 = sc1;
sc2是否会由于sc1而发生变化(sc1更改时)?
如果没有,该怎么办?
最佳答案
是的,对sc1
的任何更改都将在sc2
中反映为指向同一对象的两个点。
可以这么说,如果这是SomeClass
的结构
public SomeClass {
String name;
//getter setter
}
如果你这样做
SomeClass sc1 = new SomeClass();
SomeClass sc2 = sc1;
sc1.setName("Hello");
System.out.println(sc2.getName()); // this will print hello since both sc1 and sc2 are pointing to the same object.
但是,如果您这样做:
sc1.setName("Hello");
sc1 = null;
System.out.println(sc2.getName()); // this will print hello since only sc1 is null not sc2.