Java BeanUtils - 筛选或过滤集合



说明

使用*Predicate* 接口可以筛选 bean 集合(由 commons-collections 提供),该接口根据输入对象评估后返回 true 或 false 值。有一个名为 *BeanPropertyValueEqualsPredicate* 的谓词,它会根据给定的值评估设置的属性值。

语法

public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)

上述语法有两个参数,用于确定要评估哪个属性,以及属性的预期值是什么。它创建了一个 *Predicate*,用于评估目标对象,如果由 *propertyName* 指定的值等于由 *propertyValue* 指定的值,则返回 true;否则返回 false。

属性名称由 *org.apache.commons.beanutils.PropertyUtils* 定义,可以是简单属性、已编制索引属性、嵌套属性或映射属性。

例如,您可以筛选一个 bean 集合,其中 myCar 属性为 false

// create the closure
BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "myCar", Boolean.FALSE );
	
// filter the collection
CollectionUtils.filter( myCollection, predicate );

上述代码筛选了“myCollection”集合,并返回对象 myCar 属性的布尔值。

广告