IllegalAccessError:访问受保护的方法


问题内容

我有两节课。

A具有受保护的方法m()a是的实例A

Class B与class在同一包中A

我正在尝试访问,a.m()但正在获取IllegalAccessError

怎么了?


问题答案:

编译器应该捕获这样的错误。当您显然在运行时得到此消息时,发生了一些奇怪的事情。可能您已更改了源代码,但已完全重新编译。

另一个潜在但晦涩的问题是通过不同的类加载器加载类。即使包名称相同,从不同的类加载器加载的类也将位于不同的包中(以与由不同的类加载器加载的具有相同名称的类相同的方式是不同的类)。