我有两个用ANT构建的Java项目,名为Project A和B,我在Luna Eclipse(Java EE版本)中创建。包结构如下:
window
其中A,B和C是非抽象POJO。我还有以下继承结构: C延伸B,B延伸A. 我向A添加了一个公共方法,以便它的孩子可以拥有它。然后我构建了项目A,并将生成的JAR添加到项目B的Build Path中。我注意到C无法访问新方法。然后我将源JAR附加到构建路径,查看A.java的源代码,并且存在新添加的方法。我尝试了很多东西,并将项目A添加到项目B的Deployment Assembly中,允许C从A中查看新方法。为什么只是扩展类并添加扩展类所在的jar不提供可见性在这种情况下公共方法?
答案 0 :(得分:0)
我想,只有将项目扩展并添加到类路径才会使其编译,但它不会自动生成在生成的部署单元(EAR / WAR)中。这使得这些类在运行时不可用。
答案 1 :(得分:0)
我发现了问题。我的类路径上有多个版本的Project A JAR,编译器选择了旧的JAR而不是新的JAR。菜鸟错误。