Guava Objects 类
Objects 类提供适用于所有对象,如 equals
、hashCode
等辅助函数。
在 Java7 之后提供了 Objects 类,Guava 逐步向 Java 自带的 Objects 替换。
一、类声明
以下是 com.google.common.base.Objects
类的声明:
@GwtCompatible public final class Objects extends ExtraObjectsMethodsForWeb
二、类方法
官方文档:https://google.github.io/guava/releases/27.0.1-jre/api/docs/com/google/common/base/Objects.html
方法类型 | 方法描述 |
---|---|
static boolean | equal(@Nullable Object a, @Nullable Object b) 确定两个可能为null的对象是否相等。 |
static int | hashCode(Object... objects) 为多个值生成哈希码。 |
1、equals
当一个对象中的字段可以为 null
时,实现 Object.equals
方法会很痛苦,因为不得不分别对它们进行 null
检查。使用 Objects.equal
帮助你执行 null
敏感的 equals
判断,从而避免抛出 NullPointerException
。
例如:
Objects.equal("a", "a"); // returns true Objects.equal(null, "a"); // returns false Objects.equal("a", null); // returns false Objects.equal(null, null); // returns true
2、hashCode
用对象的所有字段作散列 [hash] 运算应当更简单。Guava 的 Objects.hashCode(Object...)
会对传入的字段序列计算出合理的、顺序敏感的散列值。你可以使用 Objects.hashCode(field1, field2, …, fieldn)
来代替手动计算散列值。
Objects.hashCode("a","b","c")
三、测试类
package com.example.guava.basic; import com.google.common.base.Objects; import junit.framework.TestCase; 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)); } }
四、相关文章
五、相关文章
未经允许请勿转载:程序喵 » Google Guava 快速入门 —— 【基础】Objects 类