替换’this’在Groovy中调用方法引用
发布时间:2020-12-14 16:27:57 所属栏目:大数据 来源:网络整理
导读:从实例获取引用时,调用非静态方法引用很容易: class Foo { void funk() { println "okay!" } }Foo foo = new Foo()Closure closure = foo.funkclosure() // okay! is printed 但是当从类中获取方法引用时如何替换它? class Foo { void funk() { println "o
从实例获取引用时,调用非静态方法引用很容易:
class Foo { void funk() { println "okay!" } } Foo foo = new Foo() Closure closure = foo.&funk closure() // okay! is printed 但是当从类中获取方法引用时如何替换它? class Foo { void funk() { println "okay!" } } Foo foo = new Foo() Closure closure = Foo.&funk // closure.delegate = foo // not helpful closure() // => java.lang.IllegalArgumentException: object is not an instance of declaring class 解决方法
以下解决了您的问题:
class Foo { void funk() { println "okay!" } } Closure closure = { Foo.&funk.rehydrate(delegate,it,it).call() } Foo foo = new Foo() closure(foo) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |