java - 如何查找 DTO 中是否至少有一个字段为空

标签 java spring-batch dto

我使用 Spring-Batch 处理 Batch。 在处理器中,我必须处理大约有 20 个字段的 DTO。

从功能上来说,如果没有字段为空,我就无事可做。 所以我想首先找出是否没有字段为空。

但我真的不想用二十来做“如果”

DTO.getValue1 != null && DTO.getValue2 != null [...]

我想知道是否没有更干净的方法来做到这一点?

提前致谢。

最佳答案

您可以使用反射来进行验证。在 DTO 中定义 isNull 方法来检查 null 字段。

public boolean isNull() {
        Field fields[] = this.getClass().getDeclaredFields();
        for (Field f : fields) {
            try {
                Object value = f.get(this);
                if (value != null) {
                    return false;
                }
            }
            catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


        }
        return true;

    }

关于java - 如何查找 DTO 中是否至少有一个字段为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57809219/

相关文章:

java - Java一对一消息广播套接字

spring-boot - 集成kafka消费者 Spring 批处理

Spring-Batch 多行记录项目编写器,每条记录的行数可变

spring - 哪个最适合批量 XML 数据处理? Spring Batch 还是 ETL 水壶 pentaho?

c# - POCO 应该从 DTO 派生还是更好?

c# - 有没有办法将键/值对列表转换为数据传输对象

java - Jython 按 `getEngineFactories` 列出,但 `getEngineByName("jython")` is ` null`

Java AES 解密得到解密的十六进制而不是解密的字符串

java - 编译时由: android. database.sqlite.SQLiteException : near "": syntax error (code 1): ,引起:

javascript - AngularJS:使用 DTO 模型