2014-04-20 65 views
3

我需要翻譯一個String,它的值將爲"com.foo.Foo",但我需要獲取位於其中的類並調用其中的方法。從完全合格的名稱獲取課程

public static void command(String name, String scriptfolder) 

這是方法的簽名

感謝

+0

什麼?我不明白你的問題。你需要獲得字符串的類? –

+0

一個好問題總會產生一個很好的答案。你應該清楚你的問題! –

+0

{ClassName} .class.getSimpleName(); –

回答

7

你試過

Class.forName("com.foo.Foo"); 

編輯: 要調用靜態方法,你需要做這樣的事情:

Class clazz = Class.forName("com.foo.Foo");  
Method method = clazz.getMethod("methodName", String.class); 
Object o = method.invoke(null, "whatever"); 

這將取決於您的方法及其參數。看到倒影教程更多內容: http://docs.oracle.com/javase/tutorial/reflect/

+0

我不認爲這會很容易。 – Curlip

+0

僅僅是你之後的課程? – JamesB

+0

是的,它有一個靜態方法,我需要調用 – Curlip

1

如果您正在尋找翻譯類名是保存在字符串中,你必須尋找

Class.forName("Your.Class.String"); 

但你必須處理該異常

備註:只是提醒您處理類沒有找到例外

+1

謝謝,但@JamesB打賭你 – Curlip