在实际业务开发中,有时候经常需要判断对象是否为空、数组是否为空、两个对象是否相等,数组中是否包含某个元素,往数组中追加元素等这些操作,每次都手写太麻烦,然后很多人的选择是封装成util工具类,实际上类似这些东西,如果项目使用了spring的框架,根本不需要封装,org.springframework.util.ObjectUtils类中已经封装好了各种的静态方法供你调用。那就一起来学习一下吧。
ObjectUtils
全限定类名:org.springframework.util.ObjectUtils
- boolean isEmpty(Object obj)
作用:
obj可以是普通对象,也可以是普通数组,如果obj为空(null或is empty),则返回true;否则返回false;
- boolean isEmpty(Object[] array)
作用:
array参数是数组,如果数组array为空(null或is empty),则返回true;否则返回false;
- boolean isArray(Object obj)
作用:参数是对象,如果参数对象obj是数组,则返回true;否则返回false;
- boolean containsElement(Object[] array, Object element)
作用:
参数array为目标数组,参数element为普通待判断的元素,如果目标数组array中包含元素element,则返回true; 否则返回false;
- boolean nullSafeEquals(Object o1, Object o2)
作用:
参数为o1、o2为普通对象,可以是数字、字符、对象、数组,如果o1与o2相等,则返回true;否则返回false;
- String nullSafeToString(Object obj)
作用:
参数obj可以是普通对象、布尔类型、byte类型、字符类型、浮点型、双精度浮点型、整型、长整型、短整型其中一种
- A[] addObjectToArray(A[] array, O obj)
作用:参数array为目标数组,参数obj为待添加元素,向参数数组array的末尾追加新元素obj,并返回一个新数组;
@Test
public void objectUtilsTest(){
Employee employee = new Employee();
employee.setRealName("zhangsan");
boolean empty = ObjectUtils.isEmpty(employee);
System.out.println("isEmpty:"+empty);
Employee[] employees={employee};
boolean empty1 = ObjectUtils.isEmpty(employees);
System.out.println("isEmpty(arrar):"+empty1);
boolean array = ObjectUtils.isArray(employees);
System.out.println("isArray:"+array);
Employee tar = new Employee();
tar.setRealName("zhangsan");
boolean b = ObjectUtils.containsElement(employees, tar);
System.out.println("containsElement:"+b);
boolean b1 = ObjectUtils.nullSafeEquals(employee, tar);
System.out.println("nullSafeEquals:"+b1);
Employee lisi = new Employee();
lisi.setRealName("lisi");
Employee[] employees1 = ObjectUtils.addObjectToArray(employees, lisi);
System.out.println("addObjectToArray:"+employees1);
String string = ObjectUtils.nullSafeToString(employees1);
System.out.println("nullSafeToString:"+string);
}
总结
org.springframework.util.ObjectUtils类中有很多已经封装好的静态方法,平时用到的里面基本都有,下面是整体的UML类图,这里只是分享其中用频率非常高的7种,有兴趣的小伙伴可以继续深入探索下去。