我有一个类,使用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
或创建另一个类来继承它来解决此问题。简而言之,我想知道是否有办法通过反射访问私有方法。
getDeclaredMethod()
而不是仅仅使用getMethod()
,后者无法用于私有方法。 - Ercksen