Java 无法访问类“”的成员;com.ABC$XYZ“;带修饰语;同步的;
我正在尝试使用反射API检索同步方法 下面给出了示例代码段:Java 无法访问类“”的成员;com.ABC$XYZ“;带修饰语;同步的;,java,reflection,inner-classes,synchronized,illegalaccessexception,Java,Reflection,Inner Classes,Synchronized,Illegalaccessexception,我正在尝试使用反射API检索同步方法 下面给出了示例代码段: class ABC { class XYZ { synchronized List methodOfXYZ() { System.out.println("Im in Method"); // do sum stuff return <Obj-List>; } } } 试试这个: public Clas
class ABC {
class XYZ {
synchronized List methodOfXYZ() {
System.out.println("Im in Method");
// do sum stuff
return <Obj-List>;
}
}
}
试试这个:
public Class ABC
{
public Class XYZ
{
public synchronized List methodOfXYZ()
{
System.out.println("Im in Method");
// do sum stuff
return <Obj-List>;
}
}
}
公共类ABC
{
公共类XYZ
{
公共同步列表方法xyz()
{
System.out.println(“Im-in方法”);
//做算术题
返回;
}
}
}
显示引发异常的代码。TestReflection
类没有methodOfXYZ()
方法的可见性(由于可见性修饰符和实际代码的包结构)。您可以在调用myMethod.invoke(…)
之前执行myMethod.setAccessible(true)
,或者修复您的包结构,使您的反射代码具有您试图反射的方法的可见性。感谢您的回复Mckeown和Sam。。此类ABC在客户端API中提供。所以我不能改变它。该类中的一个更正是:公共类ABC{classxyz实现了Runnable{synchronized List methodOfXYZ(){System.out.println(“Im-in-Method”);//do sum stuff return;}}
public Class ABC
{
public Class XYZ
{
public synchronized List methodOfXYZ()
{
System.out.println("Im in Method");
// do sum stuff
return <Obj-List>;
}
}
}