groovy1059_bug.groovy
来自「大名鼎鼎的java动态脚本语言。已经通过了sun的认证」· GROOVY 代码 · 共 54 行
GROOVY
54 行
package groovy.bugs/** * TODO: GROOVY-1059 * * Accessible to a closure attribute of an abject with the operator ".@". * For examples, all of the expressions * * object.@closure() * object.@closure.call() * object.@closure.doCall() * (object.@closure)() * * have the same meaning. * * @author John Wilson * @author Pilho Kim */class Groovy1059_Bug extends GroovyTestCase { void testClosureAsAttribute() { def x = new Groovy1059Foo() println( x.say() ) println( (x.@say)() ) println( x.@say() ) // TODO: Groovy-1059 should work println( x.@say.call() ) println( x.@say.doCall() ) println( x.@say2() ) assert "I am a Method" == x.say() assert "I am a Method" == x.@say2() assert "I am a Closure" == (x.@say)() assert "I am a Closure" == x.@say() assert x.@say() == (x.@say)() assert x.@say() == x.@say.call() assert x.@say() == x.@say.doCall() assert x.@say() != x.say() assert x.@say2() == x.say() }}class Groovy1059Foo { def public say = { it -> return "I am a Closure" } def public say2 = this.&say public Object say() { return "I am a Method" }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?