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;
}
このメソッドは、引数のない任意のコンテキスト(静的または非静的)からメソッドにアクセスしようとしているときに完全に機能します。
ここで問題となるのは、invokeを呼び出して、引数を持つメソッドに引数を渡すことができないことです。たとえば、次のようになります。
私は次の方法を持っています:
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