gpt4 book ai didi

java - Android 开发者网站上的 Java 规范 equals() 方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:32 25 4
gpt4 key购买 nike

Here该网站建议您编写 equals() 方法。

   @Override 
public boolean equals(Object o) {
if (this == o) {
return true;
}

if (!(o instanceof MyType)) {
return false;
}

MyType lhs = (MyType) o;

return primitiveField == lhs.primitiveField &&
referenceField.equals(lhs.referenceField) &&
(nullableField == null ? lhs.nullableField == null
: nullableField.equals(lhs.nullableField));
}

现在,我肯定误解了一些东西,但是假设您有两个 MyType 对象 m1 和 m2,例如如果 m1.referenceFieldnull,这将不起作用,因为当它达到

referenceField.equals(lhs.referenceField)

它将抛出 NullPointerException。我的逻辑错误在哪里?

最佳答案

我相信重点是,这将是一个 referenceField 保证为非空的类型,例如它在构造函数中进行检查。

将此与 nullableField 进行比较,其中 nullity 是作为 equals 的一部分进行检查的。

关于java - Android 开发者网站上的 Java 规范 equals() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20301463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com