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

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

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

...

public static boolean allFieldIsNULL(Object source, List<String> 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:不需要校验的属性集合

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,041评论 6 13
  • 阿里巴巴 JAVA 开发手册 1 / 32 Java 开发手册 版本号 制定团队 更新日期 备 注 1.0.0 阿...
    糖宝_阅读 12,300评论 0 5
  • 一、编程规约 (一)命名规约 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反...
    喝咖啡的蚂蚁阅读 5,426评论 0 2
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,995评论 0 9
  • (一) 姮娥居月殿, 冰洁玉相同。 无赖人间望, 为谁粉颊红? (二) 谁把相思种? 桃花满月宫。 可怜多少梦, ...
    江南烟雨阅读 1,391评论 4 3

友情链接更多精彩内容