该软件包
sun.reflect.generics.reflectiveObjects是JDK的一部分,但不是Java
API的一部分,如Oracle有关Java 7兼容性的文档中所述
这些
sun.*软件包 不是受支持的public接口的一部分
。sun.*不能保证直接调用程序包的Java程序可以在所有与Java兼容的平台上运行。实际上,即使在同一平台上的将来版本中,也无法保证此类程序可以正常工作。
这就解释了为什么软件包不是由基础AEM的Apache Felix中的 System
捆绑软件导出的。确实是一个非常合理的决定。该代码在本地编译,因为该程序包位于我的类路径中,但在运行时失败,这一切都很好并且可以预期。
我的代码最初不应该使用此程序包。有两种方法可以引入对这些程序包的依赖关系。
使用出于某种原因而使用这些类的库,并引入可传递的依赖关系。这不是事实。
导入这些类之一-这是一件非常愚蠢的事情。如果有人使用课程,他们应该知道它是什么。
就我而言,我从该包中显式导入了一个类,而没有注意到它。
事实证明,该
sun.reflect.generics.reflectiveObjects程序包包含一个
NotImplementedException类,该类的名称与经常使用的
NotImplementedExceptionfrom相同
apache.commons.lang3。
当它在我的IDE中自动完成时,我不小心将其导入,并且很长一段时间都没有注意到它。我花了一个时间
git bisect来隔离更改。
发生这种情况后,我
sun.*从自动完成中排除了软件包。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)