Создать метод, такой как createCriteria (). List () {} в Groovy - PullRequest
0 голосов
/ 06 мая 2018

Я хочу создать метод с несколькими параметрами, когда я вызываю этот метод, необходимо создать замыкание для вызова этого метода.

Например, в Grails мы имеем:

 User.createCriteria().list(){}

Я хочу создать метод, подобный списку.

1 Ответ

0 голосов
/ 06 мая 2018

Вам просто нужно объявить метод, который принимает замыкание в качестве параметра. Если последний параметр в списке является замыканием, его можно вызвать следующим образом:

def doSomething(int arg1, int arg2, Closure arg3) {
    arg3(arg1, arg2)
}

И вы можете вызвать как:

doSomething(3, 5) {a,b -> a + b}

Или как:

doSomething(3, 5, {a,b -> a + b})

Метод также не может иметь другого аргумента, кроме замыкания:

def doSomething(Closure arg3) {
    arg3()
}

print doSomething {println "closure invoked"}
print doSomething() {println "closure invoked"}

Дополнительную информацию можно найти на странице документации по закрытию .

...