s类是JDK1.7新增的一个工具类主要用于非空检查和比较
\"在这里插入图片描述\"
主要方法如下:
\"在这里插入图片描述\"
摘自

//比较两个对象是否相等(首先比较内存地址,然后比较a.equals(b),只要符合其中之一返回true)
public static boolean equals(  a,   b);

//深度比较两个对象是否相等(首先比较内存地址,相同返回true;如果传入的是数组,则比较数组内的对应下标值是否相同)
public static boolean deepEquals(  a,   b);

//返回对象的hashCode,若传入的为null,返回0
public static int hashCode(  o);

//返回传入可变参数的所有值的hashCode的总和(这里说总和有点牵强,具体参考Arrays.hashCode()方法)
public static int hash( ... values);

//返回对象的String表示,若传入null,返回null字符串
public static String toString(  o)

//返回对象的String表示,若传入null,返回默认值nullDefault
public static String toString(  o, String nullDefault)

//使用指定的比较器c 比较参数a和参数b的大小(相等返回0,a大于b返回整数,a小于b返回负数)
public static <T> int compare(T a, T b, Comparator<? super T> c) 

//如果传入的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(  obj)

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

//如果传入的obj为null抛出NullPointerException并且使用参数messageSupplier指定错误信息,否者返回obj
public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)

总结:
建议日常比较对象的时候可以用 s.equals(a,b)避免空指针异常, 类型转化String建议用
s.toString(a,\"\"),避免用 .toString 当 为null时会报空指针异常。

收藏 打印