Groovy – 覆盖单个实例的invokeMethod
发布时间:2020-12-14 16:22:49 所属栏目:大数据 来源:网络整理
导读:我有一个 java对象的实例,比方说一个名为myList的ArrayList实例. 对于这个特定的实例,我想重写invokeMethod方法,以便(比方说)调用该方法. 我可以这样做: myList.metaclass.invokeMethod { name,args - println "Called ${name} with ${args}" whatGoesHere.
我有一个
java对象的实例,比方说一个名为myList的ArrayList实例.
对于这个特定的实例,我想重写invokeMethod方法,以便(比方说)调用该方法. 我可以这样做: myList.metaclass.invokeMethod { name,args -> println "Called ${name} with ${args}" whatGoesHere.invokeMethod(name,args) } 注意闭包的第二行 – 如何调用原始的invokeMethod方法?我正确地谈到这个吗? 解决方法
原始方法的路径可能较短,但这应该有效:
def myList = [ 1,2,3 ] myList.metaClass.invokeMethod { name,args -> println "Called ${name} with ${args}" delegate.class.metaClass.getMetaMethod( name,args )?.invoke( delegate,args ) } myList.sum() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |