我想测试 bean 的所有 getter 是否都有文本。
最直接的方法是这样的测试:
boolean result=
StringUtils.hasText(bean.getProperty1()) &&
StringUtils.hasText(bean.getProperty2()) &&
.....
但是我想知道 Java 8 中是否有一种必须简洁的方法,这样我就不必重复谓词函数:
Utility.appplyPredicate(StringUtils:hasText,
bean.getProperty1(), bean.getProperty2(),...)
或者使用方法引用更好:
Utility.appplyPredicate(StringUtils:hasText, bean
Bean:getProperty1, Bean:getProperty2,...
我想我可以使用可变参数编写类似的东西,但也许有一种方法可以使用 JRE 或现有的库(如 Apache 或 Spring)来实现这一点?
最佳答案
使用流很容易做到这一点:
Stream.of(bean.getProperty1(), bean.getProperty2(), …)
.allMatch(StringUtils::hasText);
关于java - 将谓词应用于 Java 中的 getter 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56138807/