Android:Null safe等于API v19之前

时间:2014-09-03 02:46:28

标签: android api null equals

我有两个对象Object1Object2,它们可能为空,也可能不为空。 我想测试它们之间的null安全相等(如果两者都为null,则两者相等) 我完成了我的研究并找到了Objects.equals(Object1,Object2),它实现了它的目的。

但问题是它仅适用于API级别19+。 如何使这与较小的API兼容?

3 个答案:

答案 0 :(得分:6)

有几种选择。

  1. 你可以覆盖 您要比较的班级中的equals()方法,并使用obj1.equals(obj2)

  2. 您可以使用对象的hashCode()方法,通过obj1.hashCode() == obj2.hashCode()

  3. 确定它们是否相同
  4. 仅使用普通旧==确定天气两个变量包含同一个类的实例。

  5. 如果这些不安全,您可以使用obj == null轻松编写自己的空检查

    这应该完全独立于Android Api。

答案 1 :(得分:0)

你试过番石榴吗? Guava有一些相当不错的功能,可以删除很多样板。 这是他们示例的link

答案 2 :(得分:0)

这是一个简单的比较方法。但是,你必须自己动手,这似乎很奇怪。

/**
 * Null safe comparison of two objects.
 * @return true if the objects are identical.
 */
public static boolean objectEquals(Object o1, Object o2) {
    if (o1 == null && o2 == null) return true;
    if (o1 == null) return false;
    return o1.equals(o2);
}