小编Kir*_*uri的帖子

列表中的findAll上的Groovy过滤条件

我尝试在列表中使用findAll构建动态过滤器.我有一个变量,只有在不为null时才需要包含在过滤器中.

 @Test
    void testSample(){
        def list = [ new Employee(age:22, isManager:false), 
                     new Employee(age:23, isManager:true), 
                     new Employee(age:22, isManager:true) ] as Set

        def var = 22;
        String query1 = "it.age == var && it.isManager == true "
        String query2 = "it.isManager == true"

        println list
        println list.findAll { var ? query1 : query2 } // Should give 1 record age = 22 and manager
        var = null;
        println list.findAll { var ? query1 : query2 } // should give 2 records-only manager …
Run Code Online (Sandbox Code Playgroud)

groovy findall

37
推荐指数
1
解决办法
7万
查看次数

标签 统计

findall ×1

groovy ×1