利用java反射机制判断对象的属性值是否为空工具类

如何优雅的判断对象的字段属性值呢?

直接上代码(工具类,拿去就能用)

...

public static boolean allFieldIsNULL(Object source, List excludeNames){
    boolean flag = true;
    try {
        // 取到obj的class, 并取到所有属性
        Field[] fs = source.getClass().getDeclaredFields();
        // 遍历所有属性
        for (Field f : fs) {
            // 设置私有属性也是可以访问的
            f.setAccessible(true);
            // 1.排除不包括的属性名, 2.属性值为空, 3.属性值转换成String为""
            if (null != excludeNames){
                if(!excludeNames.contains(f.getName())) {
                    if ((f.get(source) == null || "".equals(f.get(source).toString()))){
                        flag = false;
                        break;
                    }
                }
            }else {
                if ((f.get(source) == null || "".equals(f.get(source).toString()))){
                    flag = false;
                    break;
                }
            }
        }
    } catch (Exception e) {
        log.error("判断对象属性为空异常", e);
    }
    return flag;
}

...

参数

1.source:需要校验的实体

  1. excludeNames:不需要校验的属性集合

感觉有用的话点个赞吧!!!

你可能感兴趣的:(利用java反射机制判断对象的属性值是否为空工具类)