package cn.com.git.dgms.common.utils;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.ArrayList;
/**
* @author zhanghao
* @create 2022/8/3 17:13
*/
//Java利用反射机制判断对象是否为空,并返回一个为空字段的下标数组
public class ObjCheckIsNull {
public static ArrayList<String> objCheckIsNull(Object object){
ArrayList<String> list = new ArrayList<>();// 定义返回结果
Class clazz = (Class)object.getClass(); // 得到类对象
Field fields[] = clazz.getDeclaredFields(); // 得到所有属性
ArrayList<String> listName = new ArrayList<>();//定义属性名集合
String fieldName = null;
for(Field field : fields){
field.setAccessible(true);
Object fieldValue = null;
try {
fieldValue = field.get(object); //得到属性值
Type fieldType =field.getGenericType();//得到属性类型
fieldName = field.getName(); // 得到属性名
//属性名初始为log
if(!"log".equals(fieldName)){
listName.add(fieldName);
}
System.out.println("属性类型:"+fieldType+",属性名:"+fieldName+",属性值:"+fieldValue);
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
//值为null
if(fieldValue == null){
list.add(String.valueOf(listName.indexOf(fieldName)));
}
}
return list;
}
}
Java利用反射机制判断对象是否为空
于 2022-08-08 11:34:48 首次发布