只是为了举例,我将 String 作为成员变量。但本来就有复杂的结构。
public class ClassA {
private final String test ;
public ClassA(String str) {
test = str;
}
@Override public int hashCode() {
return test.hashCode();
}
@Override public boolean equals(Object obj) {
return obj instanceof ClassA && test.equals(((ClassA)obj).test);
}
}
public class ClassB {
public static void main(String args[])
{
ClassA obj1 = new ClassA("abc");
ClassA obj2 = new ClassA("def");
obj1.equals(obj2);
obj2.test;//not valid
}
}
据我所知,只能在 ClassA 的方法中访问私有变量test
,obj1
这些方法应该从obj1
.
当我调用obj1.equals(obj2)
obj2 的测试变量时,可以从 obj1 的上下文中访问。
那么我们可以从 ClassA 方法中访问任何 ClassA 类型对象的私有变量吗?