Objetcs类解析

    xiaoxiao2021-03-25  86

    自java7开始,java.util包添加了一个对Object的常用方法操作类,即Objects工具类。主要为提供空指针安全的equals、hash、toString等的相应方法。其类方法概要如下:

    //判断两对象是否相等 public static boolean equals(Object a, Object b); //深度比较两对象是否相等,用于数组等形式 public static boolean deepEquals(Object a, Object b); //返回指定对象哈希值,为null返回0 public static int hashCode(Object o); //返回指定数组哈希值,为null返回0 public static int hash(Object... values); //返回对象的字符串格式,为null返回“null”字符串 public static String toString(Object o); //返回对象的字符串形式,若为null,返回指定值 public static String toString(Object o, String nullDefault); //用指定比较器比较两对象大小 public static <T> int compare(T a, T b, Comparator<? super T> c); //判断对象是否为null public static boolean isNull(Object obj); //判断对象是否不为null public static boolean nonNull(Object obj);

    这些方法的实现大都调用或依赖其他类,如equals()需要该对象具体实现类实现,toString()调用String.valueof()方法。不过这些方法主要作用在于去除了空指针的处理,提供了避免空指针异常的对常用对象操作的方法。

    public void testObject(){ String a = null; String b= null; // System.out.println(a.hashCode()); System.out.println(Objects.hashCode(a)); // System.out.println(a.toString()); System.out.println(Objects.toString(a,"no")); // System.out.println(a.equals(b)); System.out.println(Objects.equals(a,b)); }

    直接比较会有空指针异常的风险,使用Objects方法即可避免。

    转载请注明原文地址: https://ju.6miu.com/read-16891.html

    最新回复(0)