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
**/
;;
}
}