我有一個使用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
方法。
當我在過去完成這項工作時,我在調用方法後也調用了method.setAccessible(false),但我不知道這是否有必要。 – shsteimer 2009-05-19 01:53:43