Objets工具类

Objets类介绍

  1. java.lang.Object java.util.Objects
    所有类都继承Object类,Object是util包中的类,使用时要导包。
  2. public final class Objects extends Object
    用final修饰,不能被继承。
  3. 主要用于null的操作,API中是这样描述的:此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。
方法一:checkFromIndexSize
public static int checkFromIndexSize​(int fromIndex, int size, int length)

从jdk9开始有的方法;
检查fromIndex(包括) ~ (fromIndex+size)(不包括)是否在0(包括) ~ length(不包括)之间。

例:

int num = Objects.checkFromIndexSize(5,0,10);
System.out.println(num);//输出5

int num = Objects.checkFromIndexSize(2,3,10);
System.out.println(num);//输出2

int num = Objects.checkFromIndexSize(4,7,10);
System.out.println(num);//抛出数组越界异常

int num = Objects.checkFromIndexSize(11,0,10);
System.out.println(num);//抛出数组越界异常
方法二:checkFromToIndex
public static int checkFromToIndex​(int fromIndex, int toIndex, int length)

jdk9;
检查formIndex(包括) ~ size(不包括)是否在0(包括) ~length(不包括)之间;

例:

int num = Objects.checkFromIndexSize(2,3,10);
System.out.println(num);//输出2

int num = Objects.checkFromIndexSize(3,2,10);
System.out.println(num);//输出3

int num = Objects.checkFromIndexSize(3,11,10);
System.out.println(num);//抛出数组越界异常
方法三:checkIndex
public static int checkIndex​(int index, int length)

jdk9;
检查index是否在0 ~ length之间;上述三个方法用时仔细查看API;

例:

int num = Objects.checkIndex(5,10);
System.out.println(num);//输出5

int num = Objects.checkIndex(10,10);
System.out.println(num);//数组越界异常
方法四:compare
public static <T> int compare​(T a, T b, Comparator<? super T> c)

如果a和b相同,返回c.compare(a, b) o,否则返回c.compare(a, b);
这个方法一般在实现Comparator时使用。实例略。

方法五:deepEquals
public static boolean deepEquals​(Object a, Object b)

返回值为true,a和b要么都是null,要么equals相等;如果两个参数都是数组,则使用Arrays.deepEquals中的算法来确定相等性。
主要用于equals比较时,不知道哪边为null时使用;

例:

System.out.println(Objects.deepEquals(null,null));//true

System.out.println(Objects.deepEquals(null,"abc"));//false

System.out.println(Objects.deepEquals("abc",null));//false

主要用于判断:
String s = "";
System.out.println(s.equals("abc"));//java.lang.NullPointerException
方法六:equals
public static boolean equals​(Object a, Object b)

和上面方法区别在于数组判断,其他用法相似;实例略;

方法七:isNull
public static boolean isNull​(Object obj)

用于判断obj是否为空,为空返回true,否则为false;

例:

System.out.println(Objects.isNull(null));//true

System.out.println(Objects.isNull(123));//false
方法八:nonNull
public static boolean nonNull​(Object obj)

和上述方法相反,为为空返回false,否则返回true

例:

System.out.println(Objects.nonNull(null));//false

System.out.println(Objects.nonNull(123));//true
方法九:requireNonNull
public static <T> T requireNonNull​(T obj)

检查指定的对象引用是否不是null 。 此方法主要用于在方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}

方法十:requireNonNull
public static <T> T requireNonNull​(T obj, String message)

检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。 此方法主要用于在具有多个参数的方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar, Baz baz) {
this.bar = Objects.requireNonNull(bar, “bar must not be null”);
this.baz = Objects.requireNonNull(baz, “baz must not be null”);
}

其余方法不常用,不列出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值