了解常规闭包内的方法执行

时间:2019-07-12 22:15:26

标签: groovy closures

我有一个列表和一个闭包,像这样:

checkObjectExists方法返回包含4个元素的列表(请参见下面的方法)

因此,在闭合中,我希望对于发生冲突> 1的情况来做一些工作,相反,它永远不会返回一个以上的元素(这意味着如果始终为false,因此代码不会执行!),它看起来像闭包内的checkObjectExists方法正在一次迭代一个实例?我非常困惑

    def fullReport = finalStatusesInstancesList.collect{
        def conflicts = checkObjectExists(it,    projectStatusInstances)

        if (conflicts.size()>1)
            def result = [
                "$it.name",
                "${checkDescr(it.description)}",
                "${getStatusCategory(it.Key)}",
                conflicts.join(colSeparator)
            ].join(lineSeparator)

    //......

        def Instances =[Instance1,Instance2,Instance3,Instance4]
        def List checkObjectExists(def obj, def List<List<String>> lists) {
            def result = []
            for(int i=0;  i< Instances.size(); i++) {
                if(lists.get(i).contains(obj))
                    result.add(Instances.get(i))
            }
            return result
        }

    }

0 个答案:

没有答案