有一段我沒有寫的Java代碼,我無法改變它使用反射器來調用類的方法。像這樣的東西(我還沒有看到代碼):欺騙反射器
....
params[0] = Something;
....
Class c = Class.forName(Name);
Method m = c.getDeclaredMethod(MethodName, pt);
if (Modifier.isStatic(m.getModifiers()))
{
res = m.invoke(null, params);
}
else
{
obj = c.newInstance();
res = m.invoke(obj, params);
}
....
到目前爲止很好。
我控制類的名稱,方法的名稱和參數。我可以發送這些的任意組合,但有一個問題:第一個參數是硬編碼的,所以我發送的任何參數都會附加到params數組中。所以該方法必須接受該參數。
我的問題是:有沒有辦法創建一個類型並在那裏使用它?這樣的事情:
public class PrintWrapper {
public static void println(Somethingtype Something, String arg) {
System.out.println(arg);
}
}
我試過使用它作爲類的名稱,但它沒有工作,任何想法?我需要某種匿名課程或其他東西。
不,我不能更改源代碼或向系統添加類。我唯一控制的是類的名稱,方法的名稱和其餘參數。
對不起,我不明白你想要做什麼。 – 2013-05-02 13:34:41
'pt'是什麼 - 你需要包括這個爲你的問題是有道理的。 – 2013-05-02 13:35:59
pt是按聲明順序標識方法的形式參數類型的Class對象的數組。這由省略號處理...:D。它的工作 – user2343256 2013-05-02 13:38:52