在声明闭包时,我们可以使用以下方法查询接受参数的数量:
Closure#getMaximumNumberOfParameters()
Run Code Online (Sandbox Code Playgroud)
例如:
def closure = { String param ->
}
println(closure.maximumNumberOfParameters)
Run Code Online (Sandbox Code Playgroud)
将输出:
1
Run Code Online (Sandbox Code Playgroud)
为什么该方法将参数数量声明为最大值而不是常量?
在什么情况下,此方法的返回值与闭包中声明的实际参数数量不同?
默认参数?
def closure = { String param = 'something' ->
}
Run Code Online (Sandbox Code Playgroud)
所以你可以从技术上调用
closure()
Run Code Online (Sandbox Code Playgroud)
和
closure('something else')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |