适用于参数类型的递归闭包错误:(java.lang.String, java.util.ArrayList) groovy

recursive clousure error applicable for argument types: (java.lang.String, java.util.ArrayList) groovy

我有一个列表:

def myList = [[item1:1, values:'a'], [item2:2, values:'a'], 
     [item2:3,values:'b']]

我的递归闭包:

def getList  = {  sep, list ->

           list.each{ item ->

                //def at = it

                def da = myList.findAll { 

                    it?.value == item.value
                }
                //println da
                if(da?.size()>1 ){

                    getList(',',da)

                }
                else
                {
                    //println item.category+sep
                }



           }

          }

并调用

getList(',', myList)

错误returns:

No signature of method: sigec.media.MediaExpenseService.getList() is applicable for argument types: (java.lang.String, java.util.ArrayList)

但找到 returns 其他列表(第一次迭代):

[[item1:1, values:'a'], [item2:2, values:'a']]

我的错误是什么?

您需要先声明 getList 变量,然后再定义它才能正常工作,更改

def getList = {  sep, list ->

def getList
getList = { sep, list ->