我想测试一个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,...
我想我可以使用varargs编写类似的内容,但是也许有一种方法可以使用JRE或现有的库(例如Apache或Spring)来完成它?
答案 0 :(得分:4)
使用流非常容易:
Stream.of(bean.getProperty1(), bean.getProperty2(), …)
.allMatch(StringUtils::hasText);