Java BeanUtils - 查询或过滤集合
描述
可以使用接口 Predicate 在 commons-collections 中过滤 beans 的集合,并且还可以在输入对象的评估上提供 true 或 false 值。 有一个名为 BeanPropertyValueEqualsPredicate 的谓词,它将根据给定值评估设置的属性值。
语法
public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)
上面的语法有两个参数,它们决定要评估什么属性以及它的期望值应该是什么。 它创建一个用于评估目标对象的 Predicate,如果 propertyName 指定的值等于 propertyValue 指定的值,则返回 true; 否则返回 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 属性的布尔值。