我在使用java中的invoke
方法時遇到問題。具有參數的私有靜態方法的Java反射
我有一個方法用來提供我Method
對象,它看起來像:
public static Method provideMethod(String methodName, Class targetClass) throws NoSuchMethodException {
Method method = targetClass.getDeclaredMethod(methodName,null);
//Set accessible provide a way to access private methods too
method.setAccessible(true);
return method;
}
好這個方法完美的作品,當我試圖訪問方法,從任何方面(靜態或非靜態),沒有參數。
現在的問題是,我不能叫調用和參數傳遞給有參數的方法,例如:
我有以下方法:
private static boolean createDirectory(String path, String fileName) {
...
}
而且我想要調用它是這樣的:
Boolean created = (Boolean) DataUtils.provideMethod("createDirectory", FileUtils.class).
invoke(null, String.class, String.class);
但我得到java.lang.NoSuchMethodException: createDirectory []
。
有人知道如何調用一個具有參數的私有靜態方法嗎?
而且,如何將值傳遞給方法參數?
感謝, Arkde
感謝它的工作:) – Arkde