【问题标题】:Using findAll Collection Closure in Groovy在 Groovy 中使用 findAll 集合闭包
【发布时间】:2009-01-20 18:47:42
【问题描述】:

我有一个需要使用 findAll 闭包的“Set”。 Set 包含对象,而不仅仅是原始值。例如...我有一组员工对象,我需要通过员工的属性迭代和抓取该员工对象集的元素。

由于某种原因,findAll 闭包似乎只是忽略了我的关闭并返回一个空集。

这是我的语法;

dstCollection = srcCollection.findAll{
    it.age == 22
}

【问题讨论】:

    标签: groovy iteration


    【解决方案1】:

    以下对我有用:

    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]
    

    你能发布你的代码吗?

    编辑:添加“as Set”,因为我注意到问题是关于集合而不是列表。这也适用于我。

    【讨论】:

    • 您在 toString 定义上缺少一个“{” ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 2014-09-06
    • 2021-12-24
    • 2017-06-08
    • 2019-10-21
    • 2015-09-21
    相关资源
    最近更新 更多