【发布时间】:2013-12-27 15:16:52
【问题描述】:
我正在尝试使用反射 API 检索同步方法。
下面给出的示例代码sn-p:
class ABC {
class XYZ {
synchronized List methodOfXYZ() {
System.out.println("Im in Method");
// do sum stuff
return <Obj-List>;
}
}
}
我得到了运行时异常,例如:
java.lang.IllegalAccessException: Class "com.TestReflection" can not access a member of class "com.ABC$XYZ" with modifiers "synchronized".
【问题讨论】:
-
向我们展示引发异常的代码。
-
TestReflection类不具有methodOfXYZ()方法的可见性(由于可见性修饰符和实际代码的包结构)。您可以通过在调用myMethod.invoke(...)之前执行myMethod.setAccessible(true)或修复您的包结构来解决此问题,以便您的反射代码对您尝试反射的方法具有可见性。
标签: java reflection inner-classes synchronized illegalaccessexception