在groovy中,你如何动态调用类的静态方法?
void callMethod(Class c, String staticmethodname){
//what goes here to call the static method of class c?
}
答案 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' )