[Java学习之路篇] Java常用类库之Objects

所在包:java.util

Objects工具包常用于验证对象的类型或是否为null及访问数组是否越界等。

常用方法:

1. 检查数组是否越界

(1) checkFromIndexSize

// 检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。
public static int checkFromIndexSize​(int fromIndex, int size, int length)

(2) checkFromToIndex

// 检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。 
public static int checkFromToIndex​(int fromIndex, int toIndex, int length)

(3) checkIndex

// 检查 index是否在 0 (含)到 length (不包括)范围内。
public static int checkIndex​(int index, int length)

2. 判断两个对象是否相等

(1) equals 浅层相等

// 相等返回true,不相等返回false
public static boolean equals​(Object a, Object b)

// true
Objects.equals(null, null);

// 相当于a.equals(b)
Objects.equals(a, b);

如果a和b均为null,则返回true;
如果a和b均为对象,则调用a的equals方法与b进行比较

(2) deepEquals 深层相等

// 相等返回true,不相等返回false
public static boolean deepEquals​(Object a, Object b)

这里的深层相等是相对于数组来说的,如果a和b均为null,则直接返回true;
如果a和b均为数组,这里会直接调用Arrays.deepEquals。

注:equals和deepEquals的区别
它们的区别只能体现在二维及以上的数组,deepEquals设计初衷在于比较高维数组是否能按顺序一一相等,而equals做不到

3. 判断对象是否为null

(1) isNull

// 是null就返回true,不是则返回false
public static boolean isNull​(Object obj)

(2) nonNull

// 是null就返回false,不是则返回true
public static boolean nonNull​(Object obj)

(3) requireNonNullElse

// 非null就返回第一个参数,是null就返回第二个参数
public static <T> T requireNonNullElse​(T obj, T defaultObj)

(4) requireNonNullElseGet

// 非null就返回第一个参数,是null就返回实现了Supplier接口且类型为T子类的对象
public static <T> T requireNonNullElseGet​(T obj, Supplier<? extends T> supplier)

(5) requireNonNull

// 非null就返回第一个参数,是null就返回实现了Supplier接口且类型为字符串的对象
public static <T> T requireNonNull​(T obj, Supplier<String> messageSupplier)

参考文献:JDK 11 API中文帮助文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值