反射判空

通过反射判断对象的属性是否有非法为空的属性

public class FieldUtil {

                            //传入对象
private static List<String> getNullFields(Object object) { ArrayList<String> list = new ArrayList<String>(); // 获取 class 文件 Class aClass = object.getClass(); //获取所有的字段包含私有的 Field[] fields=aClass.getDeclaredFields(); for (Field field : fields) { // 暴力访问 field.setAccessible(true); // 获取字段对应的值 Object fieldValue = null; //捕获异常 try { fieldValue = field.get(object); } catch (IllegalAccessException e) { e.printStackTrace(); } //判断对象不能为null 还有字符串不能为"" if (fieldValue == null||fieldValue.toString().trim().length()==0) { // 为 null,放入 list list.add(field.getName()); } } return list; }    //判断传入的可以为空的属性与对象中为空的属性是否一致        可以为空的属性 public static boolean pdNullField(Object object, String[] value) { final List<String> nullFiled = getNullFields(object); // 对象中为 null 的数量和传入的字段一致 boolean flag1 = nullFiled.size() == value.length; boolean flag2 = true;
      //输出为空的属性
for (String s : nullFiled) { System.out.println(s); } //遍历参数 for (String s : value) { if (!nullFiled.contains(s)) { // 如果不包含其中一个字段,返回 false flag2 = false; break; } } return flag1 && flag2; } }

 

posted @ 2020-09-21 17:43  时间无岸  阅读(180)  评论(0)    收藏  举报