Eclipsetypes的层次结构…与@Configurable注释不一致
我正在开发一个Spring / Vaadin / Hibernate应用程序。
一切正常,但我仍然在Eclipse STS 2.8.1中有以下错误标记:
The hierarchy of the type BankView is inconsistent The hierarchy of the type AbstractEntityView is inconsistent
我的观点如下:
public class BankView extends AbstractEntityView { @Resource private BankService bankService; public void buildLayout() { super.buildLayout(); // Use of the service here } } public abstract class AbstractEntityView extends AbstractView { public void buildLayout() { verticalLayout = new VerticalLayout(); verticalLayout.setSpacing(true); verticalLayout.setSizeFull(); setContent(verticalLayout); super.buildLayout(); } } @Configurable(preConstruction = true) public abstract class AbstractView extends com.vaadin.ui.VerticalLayout { public AbstractView() { super(); try { buildLayout(); } catch (AccessDeniedException e) { // Spring Security System.out.println("GTFO !"); } } }
什么导致这些错误标记?
在我的情况下,我发现该The hierarchy of the type ... is inconsistent
Eclipse中的The hierarchy of the type ... is inconsistent
错误是由我从中扩展我的类引用不在构buildpath中的类的jar文件类引起的。
所以如果你有:
// in other.dep.jar class FromOtherDepJar {} // in dep.jar class FromDepJar extends FromOtherDepJar {} // in the current project class ProblematicClass extends FromDepJar {}
如果dep.jar
在项目的类path中,而other.dep.jar
不是,Eclipse将显示The hierarchy of the type ... is inconsistent
错误。
看一下Eclipse中的Problems View,Description列比实际的问题更详细,而不是hover。
重新configuration构buildpath来解决问题。
你试图closures和打开日食? 有时它有帮助。 我的日食(可能是因为我在一个Windows平台)经常显示这样的错误,唯一的解决办法是退出日食,并在以后重新打开。
另一个原因是对超类或超接口的引用存在,但在不同的包中,既不是导入也不是完全限定的。
使用Eclipse重构来移动从嵌套接口inheritance的抽象类后,发生这种情况。 移动之后,所有的子类都有“typesX的层次不一致”消息。 这个问题是通过手动导入已经移动的抽象类来解决的。
其实问题是因为我做了AbstractListView @Configurable。 当我把这个注解放在最后一个类(比如BankView)上时,所有的错误都消失了。
感谢大家的帮助。 如果有人有同样的错误,他们会find不同答案的解决scheme。
我的问题是,使用ant和gradle任务在Eclipse之外手动重新编译类/ jar。 在eclipse中刷新所有的项目和重build使错误消失。
他们是一个可能性你的maven依赖不被识别。 看看你是否为这个特定的项目启用了Maven。 在Eclipse中,可以通过右键单击项目并selectMaven – > Enable Maven dependencys来激活Maven。
在我的情况下,我使用了错误的JRE版本。
当我将actionbarsherlock添加到我的android项目,并忘记从我的原始项目中删除支持库时,我有这个问题。 解决scheme是从您的项目中删除android-support-v4.jar并清理项目..它应该从actionbarsherlock文件夹加载库。
我知道这可能不是这种情况,但只是在使用接口层次结构时可能导致此错误的附加信息,并且在层次结构中某处存在某些错误(例如错误的generics)
这个错误也显示出来当Android支持库不匹配发生,即当你使用两个外部库有两个版本的支持库这个错误显示,(我做了什么是我让他们两个相同的版本通过删除一个和复制从其他支持第三方库到这个)
错误说你缺less任何引用的JAR。
在我的情况下,我创build一个Spring MVC项目时出现这个错误。 我错过了在构buildpath中添加相关的JAR文件(spring-context-4.1.0.RELEASE.jar和spring-web-4.1.0.RELEASE.jar)。
虽然其他Spring JAR (Core,Beans,AOP和MVC)已经被添加,但是上面提到的JAR文件也是需要的。 一旦我添加了其他JAR,错误消失了。
我解决了这个错误typesServiceController的层次结构是不一致的问题,通过删除 Build Path
所有Referenced Libraries
的jar包 ,并重新添加Eclipse中的所有jar。
我通过添加javax.servlet-api-3.0.1.jar来解决这个问题。 我的开发工具是Eclipse,但是我的项目是在myeclipse下开发的,那么当我把项目导入eclipse时,它会抛出“SysUserFiltertypes的层次结构不一致”,所以我想myeclipse自动提供javax.servlet-api-3.0 .jar,但是eclipse不是,所以需要手动导入。
去实际检查你的构buildpath(项目属性=> Java Build Path => Libraries),该对话框可能会显示缺less某些东西。 这是我的问题,在项目工作的地方,但一两个月后,因为我的JRE设置改变,停止工作。