下面一行Java代码是什么意思
class Dog {
int size;
Dog(int size) {
this.size = size;
}
public boolean equals(Object o) {
return this.size == ((Dog) o).size; // im not getting whats the meaning of this line
}
}
我想知道下面这行的意思:
return this.size== ((Dog)o).size;
最佳答案
意思是:比较当前对象的 size
变量与另一个对象的 size
变量是否相等。结果是一个 boolean
值,作为 equals
方法的结果返回。
隐式断言另一个对象属于同一类型。 equals
的正确实现必须不在这种情况下抛出 ClassCastException
,而是返回 false
。因此,此实现不符合 Object#equals
方法的约定。
在我看来,开发人员感觉自己很聪明,并且“发现”了一种简洁地实现 equals
的方法。一个正确但仍然非常简洁的实现应该是这样的:
return o instanceof Dog && ((Dog)o).size == this.size;
关于java - 我想知道java中一行的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273220/