java常用API Objects


java.util.Objects 是Java 7中引入的一个实用类,提供了一些静态方法来操作对象,这些方法通常用于处理空值、比较对象等。

下面是一些常用的方法:

  1. equals(Object a, Object b):比较两个对象是否相等,可以避免 NullPointerException。
  2. requireNonNull(T obj):检查对象是否为 null,如果是则抛出 NullPointerException。
  3. isNull(Object obj):判断对象是否为 null。
  4. nonNull(Object obj):判断对象是否不为 null。
  5. hashCode(Object o):返回对象的哈希码,如果对象为 null,返回 0。
  6. toString(Object o):返回对象的字符串表示,如果对象为 null,返回 "null"。
  7. compare(T a, T b, Comparator<? super T> c):比较两个对象,使用指定的比较器,可以避免 NullPointerException。
  8. requireNonNull(T obj, String message):检查对象是否为 null,如果是则抛出带有指定错误信息的 NullPointerException。

这些方法可以简化代码,提高可读性,特别是在处理空值的情况下。

补充一些其他常用的方法:

  1. deepEquals(Object a, Object b):比较两个对象是否深度相等,即递归比较它们的所有子对象是否相等。
  2. requireNonNullElse(T obj, T defaultObj):检查对象是否为 null,如果是则返回指定的默认值。
  3. requireNonNullElseGet(T obj, Supplier<? extends T> supplier):检查对象是否为 null,如果是则通过指定的 supplier 提供一个默认值。
  4. toHexString(int value):将整数值转换为十六进制字符串。
  5. isNull(Object... objs):判断多个对象是否都为 null。
  6. nonNull(Object... objs):判断多个对象是否都不为 null。
  7. requireNonNull(T obj, Supplier<String> messageSupplier):检查对象是否为 null,如果是则抛出带有指定错误信息的 NullPointerException,错误信息由指定的 supplier 提供。

这些方法都是在处理对象时非常实用的,可以避免一些常见的错误,例如 NullPointerException 和对象比较不准确等。在编写Java应用程序时,建议熟练掌握并使用这些常用的Java API。

以下是一些使用java.util.Objects常用API的示例代码:

  1. equals(Object a, Object b)
String str1 = "hello";
String str2 = "world";
Objects.equals(str1, str2); // false
Objects.equals(str1, "hello"); // true
Objects.equals(null, null); // true
  1. requireNonNull(T obj)
String str = null;
Objects.requireNonNull(str); // throws NullPointerException
  1. isNull(Object obj)
String str = null;
Objects.isNull(str); // true
  1. nonNull(Object obj)
String str = "hello";
Objects.nonNull(str); // true
  1. hashCode(Object o)
String str = "hello";
int hashCode = Objects.hashCode(str);
  1. toString(Object o)
String str = "hello";
String strString = Objects.toString(str); // "hello"
String nullString = Objects.toString(null); // "null"
  1. compare(T a, T b, Comparator<? super T> c)
String str1 = "hello";
String str2 = "world";
int result = Objects.compare(str1, str2, Comparator.naturalOrder()); // -1
  1. requireNonNull(T obj, String message)
String str = null;
Objects.requireNonNull(str, "str must not be null"); // throws NullPointerException with message "str must not be null"

以上示例演示了如何使用java.util.Objects的一些常用API来处理空值、比较对象等。需要注意的是,Objects类中的方法大多数都是静态方法,可以直接通过类名来调用。


原文链接:codingdict.net