我有一个复杂的对象(该对象的名称是“input”),它有很多字段,我希望每个字段都检查null。目前,我有以下不洁代码:
if ((input.getAction().isEmpty() || input.getAction().isBlank()) ||
(input.getSubAction().isEmpty() || input.getSubAction().isBlank()) ||
(input.getLob().isEmpty() || input.getLob().isBlank()) ||
(input.getBusinessType().isEmpty() || input.getBusinessType().isBlank()) || ...)
如你所见,我有更多的条件检查。
第一:我想总结一下这段代码。我知道我可以为每项检查创建一个简单的方法,也可以使用 java.util.Objects.isNull
以及 object == null
. 如果你有更好的方法,我想知道。
第二:我想从另一个对象读取if条件参数,比如 String[]
,我从application.properties读取了这个对象。类似地,我想创建一个动态if语句。请参见下面的伪代码:
String[] params = {"action" , "subAction" , "lob", ...};
if(input."params[0]".isEmpty() || input."params[1]".isEmpty() || ...)
1条答案
按热度按时间bvjxkvbb1#
ApacheCommonsBeanutils有一个类,可以让您概括这样的属性。
https://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/beanutils.html#getproperty-java.lang.object-java.lang.string-
基本上,它是一个围绕反射的 Package 器,所以您只需要提供一个带有属性名的字符串,然后检查返回值是否为null和空。
或者,hibernate验证器将允许您使用bean上的注解以更灵活的方式指定验证逻辑。