XMLとリフレクションを使用Object
して別のクラスにを返すクラスがあります。
通常、これらのオブジェクトは外部オブジェクトのサブフィールドですが、時々それをオンザフライで生成したいものです。私はこのようなものを試しましたが、役に立ちませんでした。Javaではprivate
リフレクション用のメソッドにアクセスできないためだと思います。
Element node = outerNode.item(0);
String methodName = node.getAttribute("method");
String objectName = node.getAttribute("object");
if ("SomeObject".equals(objectName))
object = someObject;
else
object = this;
method = object.getClass().getMethod(methodName, (Class[]) null);
提供されたメソッドがの場合private
、で失敗しますNoSuchMethodException
。メソッドを作成するpublic
か、派生元の別のクラスを作成することで解決できます。
要するに、private
リフレクションを介してメソッドにアクセスする方法があるのかと思っていました。