在 Groovy 中创建类似 createCriteria().list(){} 的方法
Create method like createCriteria().list(){} in Groovy
我想创建一个有多个参数的方法,当我调用该方法时需要创建一个闭包来调用该方法。
例如在 Grails 中我们有:
User.createCriteria().list(){}
我想创建一个类似列表的方法。
您只需声明一个将闭包作为参数的方法。如果列表中的最后一个参数是一个闭包,那么它可以以这种方式调用:
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"}
可以在 closure documentation page 上找到更多信息。
我想创建一个有多个参数的方法,当我调用该方法时需要创建一个闭包来调用该方法。
例如在 Grails 中我们有:
User.createCriteria().list(){}
我想创建一个类似列表的方法。
您只需声明一个将闭包作为参数的方法。如果列表中的最后一个参数是一个闭包,那么它可以以这种方式调用:
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"}
可以在 closure documentation page 上找到更多信息。