我有一个地址对象,我想为其创建 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());
}
问题是,其中一些可能为空。换句话说,我会得到一个NullPointerException
如果该地址中没有街道字母。
在考虑空值的同时,如何以干净的方式编写此代码?
您可以使用辅助方法,例如
public static boolean isEqual(Object o1, Object o2) {
return o1 == o2 || (o1 != null && o1.equals(o2));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)