import java.lang.reflect.Field; import java.util.List; /** *包名: *描述: */ /** * ObjectTest.java * * 時間:2018年11月28日 * 描述: */ public class ObjectTest { // public static Log log = Log.getLog(ObjectTest.class); /** * 判斷對象部分屬性是否為空 * @param obj b ...name(b, ...name可選) * 若b為空或者為true,則判斷該對象除name屬性之外的其他屬性是否為空 * 若b為false,則判斷該對象name屬性是否為空 * @return Boolean * @throws IllegalAccessException */ public static boolean checkObjFieldIsNull(Object obj,String ...name) throws IllegalAccessException { boolean b = true; return checkObjFieldIsNull(obj,b,name); } public static boolean checkObjFieldIsNull(Object obj,Boolean b,String ...name) throws IllegalAccessException { boolean flag = false; List<String> list = java.util.Arrays.asList(name); for(Field f : obj.getClass().getDeclaredFields()){ f.setAccessible(true); // log.info(f.getName()); System.out.println(f.getName()); if(b){ if(!list.contains(f.getName())) { System.out.println(f.get(obj)); if(f.get(obj) == null){ flag = true; return flag; } } }else{ if(list.contains(f.getName())) { System.out.println(f.get(obj)); if(f.get(obj) == null){ flag = true; return flag; } } } } return flag; } public static void main(String[] args) throws IllegalAccessException{ User u = new User(); u.setAge("12"); u.setName("動物"); u.setSex("Y"); System.out.println(checkObjFieldIsNull(u)); /**輸出 name 動物 age 12 sex Y false **/ User u1 = new User(); u1.setAge("12"); System.out.println(checkObjFieldIsNull(u1,false,"age")); /**輸出 name age 12 sex false **/ System.out.println(checkObjFieldIsNull(u1,"name","sex")); /**輸出 name age 12 sex false **/ ;; } }