2010-12-17 4 views

答えて

7

出来上がり

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

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

callMethod(test, "someMethod") 
2

あなたは確かにJavaの方にそれを行うことができます。

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

はしていないようですGroovyコンソールで動く – mfloryan

+0

正しいバージョンは以下のようになります:c.getMethod(staticmethodname).invoke(null); – mfloryan

+0

が正しい。今それはコンソールで動作します – Bozho

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') 
関連する問題