比方说我们有这个课:
public class Thing {
public int myInt;
public Thing(int x, int y){
// some code here
}
}
这里还有另一个班级:
public class anotherClass{
ArrayList<Thing> thingList = new ArrayList<Thing>();
public static void main(String[] args) {
Thing thing = new Thing(1,0);
Thing thing = new Thing(0,1);
thingList.add(thing);
System.out.println(thingList); // this prints [Thing@538e82g2, Thing@9g3s1f53]
}
}
我的问题是,如何才能在实际的工作代码中执行以下操作:
Thing@9g3s1f53.myInt = 10;
Thing@538e82g2.myInt = 15;
如果这不可能,那么最接近的解决方案是什么?
答案 0 :(得分:1)
不可能。看起来像9g3s1f53
的东西是对象的哈希码,而不是指针/内存地址或类似的东西。特别是,哈希码(1)不是唯一的,如果对象不是不可变的,则(2)可以更改。