我从grails闭包返回特定值时遇到问题,在我的情况下是ArrayList。

这是我的代码:

def fun=
{
    list1, limit = list1.size()-1 ->
    def returnList = new ArrayList()
    for(Elem el in list1)
    {
        def info = el.getInfo()
        boolean toAdd = true
        if(info.size() <= 1)
        {
           aut.each
           {
               icz ->
                   if(icz.info == "hehe")
                   {
                       toAdd = false
                   }
           }
        }
        if(toAdd)
        {
            returnList.add(el)
            --limit
        }
        if(limit < 0)
        {
            break
        }
    }
    returnList
}

我正在执行这样的:fun(list1,10)或fun(list1)其中list1包含一些元素。

同样,当我调试代码时,我发现我的闭包返回值类型是一个事件。而且我也不知道我在做什么错,当然,这样做是合法的。

我也尝试将特定类型的闭包转换为ArrayList,但这会引发一个错误,即无法将闭包转换为ArrayList。我将非常感谢您的帮助!

最佳答案

我发现我犯错的地方是调用闭包而不是:

def res = fun(list1, 10)

它应该是:
def res = fun.call(list1, 10)

一切对我来说都很好:)

关于java - 从grails闭包中返回特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25566114/

10-13 04:24