【问题标题】:Eclipse The hierarchy of the type ... is inconsistent with @Configurable annotationEclipse 类型...的层次结构与@Configurable注解不一致
【发布时间】:2012-03-26 20:21:50
【问题描述】:

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

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

【问题讨论】:

  • 该错误消息通常是由于错误的类路径。尝试重建整个项目,这通常会产生更有用的错误,
  • 首先,感谢您的回答;)我已经尝试构建它,没有任何改变。我尝试了 Project > Clean... 它没有用。在我的类路径中,我尝试更改库的顺序,没有任何改变:/

标签: eclipse spring hierarchy vaadin configurable


【解决方案1】:

在我的例子中,我发现 Eclipse 中的 The hierarchy of the type ... is inconsistent 错误是由一个 jar 文件类引起的,我从该 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 将显示The hierarchy of the type ... is inconsistent 错误。

看看 Eclipse 中的问题视图,描述列比悬停更详细地说明实际问题是什么。

【讨论】:

  • 我在尝试使用 Fitnesse 教程时收到“GreetTheWorldFixture 类型的层次结构不一致”,结果发现我的项目类路径中缺少 Fitnesse.jar,感谢您的回答!
  • @GáborLipták 链接已删除,IIRC 说明了问题的相同原因
【解决方案2】:

它们有可能无法识别您的 Maven 依赖项。看看你是否为这个特定的项目启用了 Maven。 在 Eclipse 中,可以通过右键单击项目并选择来激活 Maven Maven -> 启用 Maven 依赖项。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      就我而言,我使用了错误的 JRE 版本。

      【讨论】:

        【解决方案5】:

        您是否尝试关闭和打开 Eclipse?有时它会有所帮助。我的eclipse(可能是因为我是windows平台)经常出现这样的错误,唯一的解决办法就是退出eclipse再重新打开。

        【讨论】:

          【解决方案6】:

          实际上问题是因为我将 AbstractListView @Configurable。当我把这个注解放在最后一个类上时(例如BankView),所有的错误都消失了。

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

          【讨论】:

          • 您是否在 AbstractListView 类上保留了 @Configurable ?
          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

              我知道这里可能不是这种情况,但只是为了提供更多信息,在使用接口层次结构时可能会导致此错误,并且在层次结构的更高位置存在一些错误(例如错误的泛型)

              【讨论】:

                【解决方案10】:

                当发生 android-support 库不匹配时也会出现此错误,即当您使用的两个外部库具有两个版本的支持库时,此错误显示,(我所做的是通过删除一个并复制其他第三方库对此的支持)

                【讨论】:

                  【解决方案11】:

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

                  【讨论】:

                    【解决方案12】:

                    我通过删除 Build Pathjars 的所有Referenced Libraries 解决了这个错误ServiceController 类型的层次结构不一致 问题在eclipse IDE中重新添加所有jar。

                    【讨论】:

                      【解决方案13】:

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

                      【讨论】:

                        【解决方案14】:

                        去实际检查您的构建路径(项目属性 => Java 构建路径 => 库),对话框可能会告诉您缺少某些内容。这是我的问题,该项目正在运行,但一两个月后它停止运行,因为我的 JRE 设置发生了变化。

                        【讨论】:

                          猜你喜欢
                          • 2012-01-21
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-04-27
                          • 2012-01-09
                          • 2013-12-25
                          相关资源
                          最近更新 更多