Java8新特性 之Objects对象操作工具类

Objects特点:

  • 1.该类是使用final修饰,不能被继承
  • 2.该类的构造方法被私有化(使用private修饰),不能直接创建对象
  • 3.该类中所有的方法都是静态方法,可以使用类型直接调用(对应2,该类不需要创建对象)

Objects内方法介绍:

  • 比较两个对象是否相等(首先比较内存地址,然后比较a.equals(b),只要符合其中之一返回true)
public static boolean equals(Object a, Object b);
  • 深度比较两个对象是否相等(首先比较内存地址,相同返回true;如果传入的是数组,则比较数组内的对应下标值是否相同)
public static boolean deepEquals(Object a, Object b);
  • 返回对象的hashCode,若传入的为null,返回0
public static int hashCode(Object o);
  • 返回对象的String表示,若传入null,返回null字符串,可以非常好的避免空指针异常
public static String toString(Object o)
  • 返回对象的String表示,若传入null,返回默认值nullDefault
public static String toString(Object o, String nullDefault)
  • 使用指定的比较器c 比较参数a和参数b的大小(相等返回0,a大于b返回整数,a小于b返回负数)
public static <T> int compare(T a, T b, Comparator<? super T> c) 

Person p1 = new Person();
p1.setId(1003);
p1.setName("tom");

Person p2 = new Person();
p2.setId(1002);
p2.setName("tom");

System.out.println(Objects.compare(p1, p2, (p11, p22)->{
    System.out.println(p11);
    return p11.getId() - p22.getId();
}));
  • 如果传入的obj为null抛出NullPointerException,否者返回obj
public static <T> T requireNonNull(T obj) 
  • 如果传入的obj为null抛出NullPointerException并可以指定错误信息message,否者返回obj
public static <T> T requireNonNull(T obj, String message)

-----------------------------以下是jdk8新增方法---------------------------

  • 判断传入的obj是否为null,是返回true,否者返回false
public static boolean isNull(Object obj)
  • 判断传入的obj是否不为null,不为空返回true,为空返回false (和isNull()方法相反)
public static boolean nonNull(Object obj)

如果传入的obj为null抛出NullPointerException并且使用参数messageSupplier指定错误信息,否者返回obj

public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值