
http://docs.codehaus.org/display/GROOVY/JN3535-Reflection
GroovyObject.methods.each{ println it.name } 我似乎找不到信息是一旦我抓住了它的名字,那么如何调用一个方法.
我想要的是到达这里:
GroovyObject.methods.each{ GroovyObject.invokeMethod( it.name,argList) } 我似乎找不到正确的语法.以上似乎假设我已经重载了GroovyObject类的默认invokeMethod,这不是我想去的方向.
解决方法 从Metaclass获取MetaMethod对象后,可以调用invoke.例如:class MyClass { def myFIEld = 'foo' def myMethod(myArg) { println "$myFIEld $myArg" }}test = new MyClass()test.MetaClass.methods.each { method -> if (method.name == 'myMethod') { method.invoke(test,'bar') }} 或者,您可以直接使用该名称:
methodname = 'myMethod'test."$methodname"('bar') 总结 以上是内存溢出为你收集整理的如何在Groovy中动态调用方法?全部内容,希望文章能够帮你解决如何在Groovy中动态调用方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)