本文介绍: Objects 类提供适用于所有对象,如equalshashCode等辅助函数。当一个对象中的字段可以为 null 时,实现 Object.equals 方法会很痛苦,因为不得不分别对它们进行 null 检查。使用 Objects.equal 帮助你执行 null 敏感的 equals 判断,从而避免抛出 NullPointerException。
Objects 类提供适用于所有对象,如 equals
、hashCode
等辅助函数。
类方法说明
官方文档:Objects (Guava: Google Core Libraries for Java 27.0.1-jre API)
方法类型 | 方法描述 |
---|---|
static boolean |
equal(@Nullable Object a, @Nullable Object b) 确定两个可能为null的对象是否相等。 |
static int |
hashCode(Object... objects) 为多个值生成哈希码。 |
测试Demo
public class ObjectsTest extends TestCase {
/**
* 确定两个可能是空的对象是否相等。
*/
public void testEqual() {
assertTrue(Objects.equal("a", "a"));
assertTrue(Objects.equal(null, null));
assertFalse(Objects.equal(null, "a"));
assertFalse(Objects.equal("a", null));
String s1 = "foobar";
String s2 = new String(s1);
assertTrue(Objects.equal(s1, s2));
}
public void testHashCode() {
int h1 = Objects.hashCode(1, "two", 3.0);
int h2 = Objects.hashCode(new Integer(1), new String("two"), new Double(3.0));
assertEquals(h1, h2);
System.out.println(h1 == h2); // true
assertTrue(Objects.hashCode(1, 2, null) != Objects.hashCode(1, 2));
assertTrue(Objects.hashCode(1, 2, null) != Objects.hashCode(1, null, 2));
assertTrue(Objects.hashCode(1, null, 2) != Objects.hashCode(1, 2));
assertTrue(Objects.hashCode(1, 2, 3) != Objects.hashCode(3, 2, 1));
assertTrue(Objects.hashCode(1, 2, 3) != Objects.hashCode(2, 3, 1));
}
}
原文地址:https://blog.csdn.net/qq_63815371/article/details/135480432
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_54460.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。