本文仅记录作者目前学习觉得常用的方法,想了解得更详尽,可以参考Java官方API文档。
有错误欢迎指正。
java.util.Objects
包含了很多静态实用程序方法的类,用于操作对象或在操作之前检查某些条件。
这些实用程序包括 null 或 null方法,用于计算对象的哈希代码、返回对象的字符串、比较两个对象,以及检查索引或子范围值是否超出范围。
1.equals
public static boolean equals(object a,object b)
和 Objcet.equals(Object obj)一样用于判断两个对象的内容是否相等。
相比于 Objcet.equals(Object obj)更简便。
Objcet.equals(Object obj)方法是将.前面的作为调用对象,括号里的对象作为参数返回值。需要判断.前面的调用对象是否为 null,为 null 会抛出NullPointerException 空指针异常,使用时得确保调用对象不为 null。
而 Objects.equals(object a,object b) 则不用考虑对象是否为 null 的问题。
举例:
class Main {
public static void main(String[] args) {
String a = "abc";
String b = "abc";
String c = null;
System.out.println(Objects.equals(a,b));
System.out.println(Objects.equals(a,c));
}
}
结果:
true
false
2.hashCode
public static int hashCode(Object o)
返回调用对象的哈希码,null的值为0
3.isNull
public static boolean isNull(Object obj)
判断传入值是否为 null,为 null 则返回 ture,为 非null 则返回 false
4.nonNull
public static boolean nonNull(Object obj)
判断传入值是否为 非null,为 非null 则返回 ture,为 null 则返回false
34举例:
class Main {
public static void main(String[] args) {
String a = "abc";
String b = null;
System.out.println(Objects.isNull(a));
System.out.println(Objects.isNull(b));
System.out.println(Objects.nonNull(a));
System.out.println(Objects.nonNull(b));
}
}
结果`
false
true
true
false
注意:3 4 从1.8版本才开始
5.requireNonNull
public static T requireNonNull(T obj)
检查传入对象是否为 null,不是 null 返回非 null值即本身。
是 null,NullPointerException异常
public static T requireNonNull(T obj, String message)
跟上面那个类似,不过可以在对象为 null 时抛出自定义异常作为提示。
举例:
class Main {
public static void main(String[] args) {
String a = "异常异常异常";
String b = null;
System.out.println(Objects.requireNonNull(b,a));
}
}
结果:
Exception in thread "main" java.lang.NullPointerException: 异常异常异常
6.requireNonNullElse
public static T requireNonNullElse(T obj, T defaultObj)
至少输出两个对象中的一个:
第一个对象为空时,输出第二个对象
对一个对象不为空时,输出第一个对象
两者都为空时,会 NullPointerException 空指针异常
举例:
class Main {
public static void main(String[] args) {
String a = "abc";
String b = "aaa";
String c = null;
System.out.println(Objects.requireNonNullElse(a,b));
System.out.println(Objects.requireNonNullElse(b,a));
System.out.println(Objects.requireNonNullElse(a,c));
System.out.println(Objects.requireNonNullElse(c,a));
}
}
结果:
abc
aaa
abc
abc
7.toString
public static String toString(Object o)
调用参数 非null 则返回 非null 得结果。
调用参数为 null 则返回“null”。
public static String toString(Object o, String nullDefault)
调用的第一个参数 非null,则在第一个参数上调用toString的结果(就是返回自己啦)。
否则返回第二个参数。
举例:
class Main {
public static void main(String[] args) {
String a = "abc";
String b = null;
String c = "aaa";
System.out.println(Objects.toString(a,b));
System.out.println(Objects.toString(b,c));
}
}
结果:
abc
aaa