我有实现 IAssembly 的类 Assembly。
我在启动应用程序时看到以下错误
Caused by: java.lang.IllegalAccessError: class <Assembly > cannot access its superinterface <IAssembly>
at java.lang.ClassLoader.defineClass1(Native Method)
汇编代码
class package.Assembly implements IAssembly {
}
组装
interface IAssembly { //note -this is not public, so uses default protected
}
Assembly 和 IAssembly 存在于两个不同的 jar 中。两个 jar 由不同的类加载器加载。Assembly 类在子类加载器中加载,IAssembly 是父类。类加载器正在使用链接。
在正常情况下,这是有效的。当我在使用 cobertura 检测 jar 后运行我的应用程序时发生错误。没有仪器,一切正常。cobertura 仪器会导致这样的错误吗?或者,无论如何,这都是一个等待检测的错误,但使用 cobertura,该错误很快就会暴露出来。
通过使界面“公开”,错误就会消失。