Использование замыкания коллекции findAll в Groovy

StackOverflow https://stackoverflow.com/questions/462561

  •  19-08-2019
  •  | 
  •  

Вопрос

У меня есть «Set», для которого мне нужно использовать замыкание findAll.Набор содержит объекты, а не только примитивные значения.Например...У меня есть набор объектов «Сотрудник», и мне нужно перебирать и захватывать элементы этого набора объектов «Сотрудник» по атрибутам «Сотрудник».

По какой-то причине закрытие findAll просто игнорирует мое закрытие и возвращает пустой набор.

Вот мой синтаксис;

dstCollection = srcCollection.findAll{
    it.age == 22
}
Это было полезно?

Решение

Для меня работает следующее:

class Employee {
    int age

    String toString() {
        age
    }
}

def list = [ new Employee(age:22), new Employee(age:23), new Employee(age:22) ] as Set

println list
println list.findAll { it.age == 22 }

выход:

[22, 23, 22]
[22, 22]

Можете ли вы опубликовать свой код?

Редактировать:добавлено «как набор», так как я заметил, что вопрос касается наборов, а не списков.Это также работает для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top