在 equals 检查中避免 NullPointerException 的干净方法

2024-01-04

我有一个地址对象,我想为其创建 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(使用前将#替换为@)

在 equals 检查中避免 NullPointerException 的干净方法 的相关文章

随机推荐