如何在Groovy中动态调用静态方法(以MetaMethod对象的形式)

时间:2014-10-21 08:08:43

标签: groovy

举个例子,让我们采用StringUtils的一种方法:

def isEmptyMethod = StringUtils.metaClass.getMetaMethod("isEmpty", String)

一旦我有了这个方法,我可以像这样调用它:

isEmptyMethod.invoke(null, 'some string')

这是调用静态元方法的正确方法吗? null参数似乎不正确,但我找不到一种“更清洁”的方法来做到这一点。

编辑:我认为这是cfrick喜欢的问题的答案之一,但我仍然不相信'null'参数......

1 个答案:

答案 0 :(得分:0)

简短的方法:

StringUtils."isEmpty"('some string')

MetaMethod方式:

def isEmptyMethod = StringUtils.metaClass.getMetaMethod("isEmpty", String)
isEmpty.invoke(null, '')