比较具有hashCode和equals的对象时的奇怪行为

时间:2017-11-29 21:32:24

标签: java oop collections

我希望覆盖const styles = StyleSheet.create({ container: { flex: 1, flexDirection: 'column', }, upper: { flex: 0, maxHeight: '50%', }, lower: { flex: 1, }, }); ,如果两个对象实现相同的接口(BaseProduct)并且它们的所有字段相等,那么两个对象应该被视为相等。

在测试这些方法时,我注意到了一个有趣的行为:如果equalsgroceryProduct都将techProduct字段设置为List<Reviews> reviews且其他字段相等,则比较hashCodes和null方法返回true。

但是,如果两个对象都有一个传递给构造函数的评论列表(下面示例中的最后一个参数),则比较返回的hashCodes和equals方法都会返回false。 调试代码时,我看到equalsgroceryProduct确实有不同的hashCode值。

我想知道是什么原因导致这种行为?

我故意将techProduct方法中的reviews字段与Objects.deepEquals()进行比较,希望它可以解决问题。但它没有帮助。

equals

0 个答案:

没有答案