java的Objects方法详解

checkFromIndexSize()方法,刚开始没看懂,看了下面的解释就懂了,但是怎么用就不知道了
在这里插入图片描述
其实就是如果[fromIndex,fromIndex+size]是[0,length]的子集,返回fromIndex,否则报错
checkFromToIndex() 这个方法和上面的差不多,只是size改为了toIndex,也就是增长了,和增长到的区别。
checkIndex()其实在api文档中都有完整的公式理解,如下
在这里插入图片描述
compare()第三个参数就写一个有两个参数的lambda表达式就好了。

deepEquals()比较的是最底下的组成元素是否是同一个元素,不管上面的,而equals()比较的是最上面的,底下的不管。
拿数组举例,deepEquals()比较的是元素是否相等,而equals比较的是数组这个对象是否相等。deepEquals()是不管equals管的地方的。

hash() 给多个对象,生成一个hashCode,但是当输入一个对象的时候和hashCode()方法,返回的值不同。也就是不等于哈希码
hashCode() 只能给一个对象生成hashCode,,返回哈希码

isNull()
nonNull()
requireNonNull() 应该是和软弱虚引用结合使用,和垃圾回收机制有关系。
requireNonNullElse()
requireNonNullElseGet() 先放着

import java.util.*;
import java.io.*;
public class Test
{
	public static void main(String[] args) throws CloneNotSupportedException
	{
		//使用Objects工具类
		System.out.println(Objects.checkFromIndexSize(1,9,10));
		System.out.println(Objects.checkFromIndexSize(2,4,10));
		
		System.out.println(Objects.checkFromToIndex(1,10,10));

		System.out.println(Objects.checkIndex(5,6));

		System.out.println(Objects.compare(10,20, (a,b) -> 0));
		
		String[] strs1 = new String[]{"1","2","3"};
		String[] strs2 = new String[]{"1","2","3"};
		

		System.out.println(Objects.deepEquals(strs1,strs2));
		System.out.println(Objects.equals(strs1,strs2));
		
		String name1 = "孙悟空";
		String name2 = "猪八戒";
		String name3 = "沙悟净";
		System.out.println(Objects.hash(name1));
		System.out.println(Objects.hashCode(name1));
		System.out.println(Objects.hash(name2));
		System.out.println(Objects.hashCode(name2));
		
		System.out.println(Objects.hash(name1,name2));
		System.out.println(Objects.isNull(name1));
		System.out.println(Objects.isNull(null));

		System.out.println(Objects.nonNull(name1));
		System.out.println(Objects.nonNull(null));
		
		System.out.println(Objects.requireNonNull(name1));
		//name1 = null;
		System.out.println(Objects.requireNonNull(name1,"name1 一定不能是null"));

		System.out.println(Objects.requireNonNullElse(name1,name2));
		name1 = null;
		System.out.println(Objects.requireNonNullElse(name1,name2));

		System.out.println(Objects.toString(null));
		System.out.println(Objects.toString(name1));

		System.out.println(Objects.toString(null,"abc"));
		
		
		
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值