【发布时间】:2021-07-01 01:07:26
【问题描述】:
我正在尝试覆盖 pojo 的 toEquals 方法。但是我不确定如何比较父类属性,因为 super() 给我一个错误。
我正在尝试这样的事情:
@Override
public boolean equals(Object o) {
return super.equals(o.super()); // it mentions that the abstract parent class is not an inner class
}
如何比较父抽象类字段是否相等?子属性有可能相似,但父属性总是不同。
【问题讨论】:
-
你应该在
super.equals(...)中传递o而不是obj.super()。 -
从语法上看,您的代码似乎有问题,请根据上述评论调整更改
-
您可以使用 IDE 生成 equals(和 hashCode)方法。他们为此提供了众所周知且经过测试的模板。
-
不要在继承类的同时编写遵循equals协定的equals方法。应改为使用合成。