java.util.Objects工具类总结
注意是Objects不是Object!
认识
Objects是java.util包下的类,它是java.lang.Object的子类;
- 包含static实用程序方法,用于操作对象或在操作前检查某些条件
主要是检查操作 - 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。
以下结果正确吗?
public class Demo2 {
public static void main(String[] args) {
String s1 = null;
String s2 = "123";
// System.out.println(s1.equals(s2));//造成空指针异常
System.out.println(Objects.equals(s1,s2));//false
System.out.println(Objects.isNull(s1));//true
// System.out.println(Objects.requireNonNull(s1));//NullPointerException
System.out.println(Objects.requireNonNull(s1,"哈哈,空指针"));//NullPointerException: 哈哈,空指针
}
}
常用方法
- equals(Object a, Object b)
如果参数相等返回 true,其他false。
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
- 三目运算返回结果,如果a与b的地址相等,他们就相等,就不会执行后面的;如果a与b地址不同,则判断a是否为null!
- isNull(Object obj)
如果提供的参考是 null 返回true,否则是false
public static boolean isNull(Object obj) {
return obj == null;
}
直接返回obj是否等于null;
3. nonNull(Object obj)
返回 true如果提供的参考是非 null否则返回 false
public static boolean nonNull(Object obj) {
return obj != null;
}
- requireNonNull(T obj)
检查指定的对象引用是否不是 null
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
如果obj为null,则抛出空指针异常;反之,就将该对象返回!
- requireNonNull(T obj, String message)
检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException的message信息 。
public static <T> T requireNonNull(T obj, String message) {
if (obj == null)
throw new NullPointerException(message);
return obj;
}
- toString(Object o, String nullDefault)
如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。 - checkIndex(int index, int length)
检查 index是否在 0 (含)到 length (不包括)范围内。 - checkFromIndexSize(int fromIndex, int size, int length)
检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。 - checkFromToIndex(int fromIndex, int toIndex, int length)
检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。