Java:比较对象值

bur*_*gar 0 java iterator compare

我试图比较迭代器中的2个x实例的值.

x是包含其自己的数据成员的引用类型.我试图将x的一个实例与另一个实例进行比较,以确定每个实例中的值是否相同.

if(x.equals(x))

实际上每个x实例的值不同时,会将评估结果保持为true.

干杯.

hha*_*fez 8

假设您的代码看起来不像这样

X x = new X();
if(x.equals(x))
Run Code Online (Sandbox Code Playgroud)

但更喜欢

X x = new X();
X y = new X();

if(x.equals(y)) { }
Run Code Online (Sandbox Code Playgroud)

你得到了错误的值,x.equals(y)那么你的equals实现就会被打破.

转到您的Class X并检查equals的实现方式.如果没有在X中实现超级类检查.