我有一个实现抽象类的类。抽象类在我项目的另一个包中。通过配置构建路径/项目添加了类抽象的包。在实现的类中指责以下错误:类型类的层次结构不一致
我必须在其他地方添加这个包吗?
谢谢!
我有一个实现抽象类的类。抽象类在我项目的另一个包中。通过配置构建路径/项目添加了类抽象的包。在实现的类中指责以下错误:类型类的层次结构不一致
我必须在其他地方添加这个包吗?
谢谢!
发生这些错误是因为层次结构中的某些接口/类无法解析。例如:错误在您的类中 - 类 X,X 继承 Y,反过来,Y 继承 Z。但是,编译器无法解析 z(在上述错误中),因为 z 属于未包含的库。因此,您必须将包含 z 的包添加到 classpath/ 或项目的 Java 构建路径(如果您使用的是 eclipse)。希望它会有所帮助。
转到项目资源管理器。
错误将得到解决。
这意味着您在超类中进行了不兼容的更改,但尚未重新编译它。
我建议您使用 Maven 或 Ant 之类的构建系统和/或使用 IDE 来构建您的所有代码。
我在我的 RCP 应用程序之一中遇到了这个问题。
原因:我没有org.eclipse.core.runtime
在 Manifest 文件的依赖部分添加核心插件。当我添加此依赖项 jar 问题已解决。
谢谢, 席德
这意味着您实现的类引用了接口或类,该接口或类再次引用了其他库中的一些其他类或接口,而这些类或接口不可用。
springframework.aop jar 取决于 aopalliance.jar 将其添加到您的类路径中,它将解决您的问题,希望它可以工作,因为我面临同样的问题,我添加了依赖 jar,所以它解决了
right click your project ,Properties- java build path- source- include all the cs file source(it may inherit the files) and sync.
这对我有用并且正确。
当我尝试在另一个插件项目中使用某个类时,我也遇到了这个问题。我有类似 myClass extends pp1Class 之类的东西 - 在这里我遇到了错误,pp1Class 插件被添加为依赖项。pp1Class 扩展 pp2Class - 这是 pp1(插件 proj1)中的依赖项,但不是我的插件。我所做的是转到 pp1 并在其中定义了对 pp2 的依赖项,单击属性并检查“重新导出此依赖项”(这是在 MANIFEST.MF 中)。这应该可以解决问题,它解决了我的问题。
此错误的另一个原因是,您的一个基类实现了一个位于外部库中的接口,并且您的 .classpath 文件保存在源代码控制系统上(因此是只读的)。
例如,您的 ClassB 扩展了 ClassA,而 ClassA 实现了 LibraryA.jar 中的 InterfaceA。ClassA 在 ProjectA 中,ClassB 在 ProjectB 中。ProjectA .classpath 文件是只读的。
在这里,您必须从 ProjectA 中导出 LibraryA.jar。但我猜由于 Eclipse 错误,当一个新的队友连接这些项目时(或者偶尔当你准备另一个工作区时),他会得到这种类型层次结构错误。解决此问题的唯一方法是检出 ProjectA 中的 .classpath 文件,删除并重新添加一个库(不必是 LibraryA.jar)。此操作以某种方式解决了错误。
在Eclipse、OSGi环境下,可以将需要的包添加到MANIFEST.MF->Dependencies选项卡->Imported packages。这将解决问题。或者包含该类的插件可以添加到Required Plugin-ins
我实际上在构建路径中添加了所有相关的 jar 和接口,但我仍然面临错误,所以后来有人建议我在构建路径中添加 j2ee.jar,我的错误就消失了。
我在maven
使用Eclipse oxygen.1a
IDE 的项目中也遇到了这个问题,
MyClassName 类型的层次结构不一致
在类名级别显示错误,
此后,我从存储库中获取了完整的 svn 更新,之后Maven -> Update Project
又进行了更新Project Refresh
。
错误消失了...
据我了解,这是由于非托管项目版本而发生的。
A型的层次结构不一致
上述错误主要是因为类路径中缺少一些 jars 例如:我试图实现一个接口“MethodBeforeAdvice”
这里 MethodBeforeAdvice 实现了 BeforeAdvice,这两个接口存在于一个名为“Spring-aop-4.2.5.Release.jar”的 jar 文件中
但是“BeforeAdvice”接口实现了一个接口“Advice”,该接口存在于我的类路径中不存在的其他一些 jar“aop-alliance-1.0.0.jar”中