public class TestClass {public static void main(String[] args) { user user = new TestClass().new user(); user.setName(null); user.setPassword(null); System.out.println(user == null);}class user { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }}
如果有需求需要判断对象内容为空,对象为空。可以写一个工具类
这个工具类还包括比较两个对象内属性,相同置为null,不同置为新对象的值。并返回比较后新生成的对象
import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;public class ClassUtils { @SuppressWarnings("unchecked") public staticT getDiffObject(T t1, T t2) { Map map = getDiffField(t1, t2); T result = null; try { if(map != null && map.size() > 0) { Class clazz = Class.forName(t1.getClass().getName()); result = (T) clazz.newInstance(); for(Map.Entry me : map.entrySet()) { Field field = clazz.getDeclaredField(me.getKey()); field.setAccessible(true); field.set(result, me.getValue()); } } } catch (Exception e) { e.printStackTrace(); } return result; } public static Map getDiffField(T t1, T t2) { Map resultMap = new HashMap (); Class clazz1 = t1.getClass(); Class clazz2 = t2.getClass(); Field[] fields1 = clazz1.getDeclaredFields(); Field[] fields2 = clazz2.getDeclaredFields(); for(int i = 0; i < fields1.length; i++) { try { fields1[i].setAccessible(true); fields2[i].setAccessible(true); Object obj1 = fields1[i].get(t1); Object obj2 = fields2[i].get(t2); if((obj1 != null && !obj1.equals(obj2)) || (obj2 != null && !obj2.equals(obj1))) { resultMap.put(fields2[i].getName(), obj2); } } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } return resultMap; } public static boolean isNull(Object obj) { boolean result = true; if(obj != null) { Class clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); if(fields != null && fields.length > 0) { for(Field field : fields) { try { field.setAccessible(true); Object value = field.get(obj); if(value != null) { result = false; break; } } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } } } return result; }}