Eclipse类型的层次结构。。。与@Configurable注释不一致

Eclipse类型的层次结构。。。与@Configurable注释不一致,eclipse,spring,hierarchy,vaadin,configurable,Eclipse,Spring,Hierarchy,Vaadin,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 {

我正在开发一个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 !");
        }
    }
}

是什么导致了这些错误标记?

在我的例子中,我发现了类型的层次结构。。。Eclipse中的不一致错误是由一个jar文件类引起的,我正从该类扩展我的类,引用的类不在构建路径中

因此,如果你有:

// in other.dep.jar
class FromOtherDepJar {}

// in dep.jar
class FromDepJar extends FromOtherDepJar {}

// in the current project
class ProblematicClass extends FromDepJar {}
如果
dep.jar
在项目的类路径中,而
other.dep.jar
不在项目的类路径中,Eclipse将显示
类型的层次结构。。。不一致
错误


看看Eclipse中的Problems视图,Description列对实际问题的描述比悬停更详细。

它们可能无法识别您对maven的依赖。查看是否已为此特定项目启用Maven。 在Eclipse中,可以通过右键单击项目并选择
Maven->启用Maven依赖项。

重新配置构建路径以解决问题

在我的例子中,我使用了错误的JRE版本。

您是否尝试关闭和打开eclipse?有时它会有帮助。我的eclipse(可能是因为我在Windows平台上)经常显示这样的错误,唯一的解决方案是退出eclipse并稍后重新打开。

事实上,问题是因为我使AbstractListView@可配置。当我把这个注释放在最后一个类(例如BankView)上时,所有的错误都消失了


谢谢大家的帮助。如果有人有相同的错误,他们会在不同的答案中找到解决方案。

我在android项目中添加actionbarsherlock时遇到了这个问题,但我忘记了从原始项目中删除支持库。解决方案是从项目中删除android-support-v4.jar并清理项目。。它应该从actionbarsherlock文件夹加载库。

另一个原因是对存在的超类或超接口的引用,但它位于不同的包中,既不是导入的,也不是完全限定的


在使用Eclipse重构来移动从嵌套接口继承的抽象类之后,我发生了这种情况。移动之后,所有子类都有“X类型的层次结构不一致”消息。通过手动导入已移动的抽象类解决了此问题。

我知道这里可能不是这种情况,但仅针对附加信息,在使用接口层次结构时可能会导致此错误,并且存在一些错误(例如错误的泛型)当android支持库不匹配时,即当您使用的两个外部库有两个版本的支持库时,此错误也会显示在您的层次结构中较高的位置(我所做的是通过删除一个并将支持从另一个第三方库复制到此支持库,使它们都具有相同的版本)

我的问题是类/JAR是在Eclipse之外使用ant和gradle任务手动重新编译的。刷新所有项目并在eclipse中重建使错误消失。

我通过在
构建路径中删除JAR的所有
引用库,并在eclipse中重新添加所有JAR,解决了此错误类型ServiceController的层次结构不一致的问题IDE。

我通过添加javax.servlet-api-3.0.1.jar解决了这个问题。我的开发工具是Eclipse,但我的项目是在myeclipse下开发的,然后当我将项目导入Eclipse时,它抛出“SysUserFilter类型的层次结构不一致”,所以我认为myeclipse自动提供了javax.servlet-api-3.0.1.jar,但是eclipse没有。因此它需要手动导入。

实际检查您的构建路径(项目属性=>Java构建路径=>Libraries),对话框可能会显示缺少某些内容。这是我的问题,项目正在运行,但一两个月后,由于我的JRE设置发生了更改,它停止了工作。

该错误消息通常是由于错误的类路径。尝试重新构建整个项目,这通常会产生一个更有用的错误,首先,感谢您的回答;)我已经试着建造了它,没有任何改变。我尝试了项目>清洁。。。它不起作用。在我的类路径中,我试图更改库的顺序,但没有任何更改:/可能重复我得到的“GreetTheWorldFixture类型的层次结构不一致”,而在fitnesse教程中,我发现我的项目类路径中缺少fitnesse.jar,谢谢回答@删除了GáborLipták链接,IIRC它说明了问题的相同原因您是否在AbstractListView类上保留了@Configurable?