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 属性的布尔值。