📅  最后修改于: 2020-11-04 07:09:06             🧑  作者: Mango
可以通过使用谓词接口在commons-collection中过滤bean的集合,并在评估输入对象时提供true或false值。有一个称为BeanPropertyValueEqualsPredicate的谓词,它将根据给定值评估设置的属性值。
public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)
上面的语法有两个参数,它们决定要评估的属性以及其预期值。它用于评价所述目标对象,并返回true,如果由propertyName的指定的值等于由指定的PropertyValue的值创建一个谓语;否则返回false。
属性名称由org.apache.commons.beanutils.PropertyUtils定义,并且可以是简单的,索引的,嵌套的或映射的。
例如,您可以过滤myCar属性为false的bean集合:
// create the closure
BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "myCar", Boolean.FALSE );
// filter the collection
CollectionUtils.filter( myCollection, predicate );
上面的代码过滤“ myCollection”集合,并返回对象的myCar属性的布尔值。