在groovy中,如何动态调用类的静态方法?

时间:2010-12-17 20:49:45

标签: groovy

在groovy中,你如何动态调用类的静态方法?

void callMethod(Class c, String staticmethodname){
     //what goes here to call the static method of class c?
}

3 个答案:

答案 0 :(得分:7)

void callMethod(Class c, String staticmethodname){
     c."$staticmethodname"()
}

class test {
  static someMethod() {
    println "me"
  }
}

callMethod(test, "someMethod")

答案 1 :(得分:3)

你当然可以用java方式做到这一点:

c.getMethod(staticmethodname).invoke(null);

答案 2 :(得分:2)

你可以这样做:

def callMethod(Class c, String staticmethodname, args = null ) {
  args ? c."$staticmethodname"( args ) : c."$staticmethodname"()
}

println callMethod( String.class, 'valueOf', 1 )
println callMethod( Calendar.class, 'getInstance' )