Коллекции bean-компонентов могут быть отфильтрованы в commons-collection с помощью интерфейса Predicate, а также предоставляют значение true или false при оценке входного объекта. Существует предикат с именем BeanPropertyValueEqualsPredicate, который будет оценивать установленное значение свойства по сравнению с заданным значением.
Синтаксис
public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)
Приведенный выше синтаксис имеет два параметра, которые определяют, какое свойство должно оцениваться и какое должно быть его ожидаемое значение. Он создает предикат для оценки целевого объекта и возвращает значение true, если значение, указанное в propertyName , равно значению, указанному в propertyValue ; в противном случае возвращается false.
Имена свойств определяются org.apache.commons.beanutils.PropertyUtils и могут быть простыми, индексированными, вложенными или отображенными.
Например, вы можете отфильтровать коллекцию бинов, где свойство myCar имеет значение false:
// create the closure BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "myCar", Boolean.FALSE ); // filter the collection CollectionUtils.filter( myCollection, predicate );
Приведенный выше код фильтрует коллекцию ‘myCollection’ и возвращает логическое значение для свойства myCar объекта.