Java BeanUtils - 查询或过滤集合

描述

可以使用接口 Predicate 在commons-collections中过滤bean的集合,并在评估中提供true或false值一个输入对象.有一个名为 BeanPropertyValueEqualsPredicate 的谓词,它将根据给定值评估set属性值.

语法

 
 public BeanPropertyValueEqualsPredicate(String propertyName,Object propertyValue)

上面的语法有两个参数,它决定了要评估的属性以及它的预期值.它创建一个 Predicate 用于评估目标对象,如果 propertyName 指定的值等于 propertyValue 指定的值,则返回true;否则它返回false.

属性名由 org.apache.commons.beanutils.PropertyUtils 定义,可以是简单的,索引的,嵌套的或映射.

例如,您可以过滤myCar属性为false的bean集合:

 
//创建闭包
 BeanPropertyValueEqualsPredicate谓词= new BeanPropertyValueEqualsPredicate("myCar",Boolean.FALSE); 
//过滤集合
 CollectionUtils.filter(myCollection,predicate);

上面的代码过滤'myCollection'集合并返回对象的myCar属性的布尔值.