Java:避免在等值检查中避免NullPointerException的干净方法
||
我有一个地址对象,我想为其创建一个equals方法。我可以通过执行以下操作(简化一点)使此操作变得非常简单:
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Address other = (Address) obj;
return this.getStreet().equals(other.getStreet())
&& this.getStreetNumber().equals(other.getStreetNumber())
&& this.getStreetLetter().equals(other.getStreetLetter())
&& this.getTown().equals(other.getTown());
}
问题是,其中一些可能为空。换句话说,如果这个地址没有街道字母,我将得到一个“ 1”。
如何在考虑空值的同时以简洁的方式编写此代码?
没有找到相关结果
已邀请:
8 个回复
超可林
梆晨灸碾
还值得指出的是,对象还有其他用于实现hashCode()和toString()的帮助器方法。
社攻取墟槽
Java 7通过java.util.Objects类引入了对此用例的内置支持,请参见: java.utils.Objects.equals(Object,Object) java.utils.Objects.deepEquals(Object,Object)
靛取糕奖穿
因此,在equals方法中
傻寺俊擒
味芯憨
肉脓措伪
另外,将支票放在
在功能的最开始
讼乐