Затмение Иерархия типа ... несовместима с аннотацией @Configurable - PullRequest
35 голосов
/ 09 марта 2012

Я разрабатываю приложение 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 !");
        }
    }
}

Что вызывает эти маркеры ошибок?

Ответы [ 14 ]

50 голосов
/ 20 августа 2012

В моем случае я обнаружил ошибку The hierarchy of the type ... is inconsistent в Eclipse, вызванную классом файлов jar, из которого я расширял свой класс, ссылаясь на класс, который не был в пути сборки.

Так что еслиhave:

// 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, столбец «Описание» более детален о том, что является реальной проблемой, чем при наведении курсора.

1 голос
/ 13 августа 2015

Моя проблема заключалась в том, что классы / файлы jar перекомпилировались вручную вне Eclipse с использованием задач ant и gradle. Обновление всех проектов и повторная сборка в Eclipse привели к исчезновению ошибок.

1 голос
/ 24 января 2014

Другая причина - ссылка на суперкласс или суперинтерфейс, который существует, но находится в другом пакете и не импортирован и не полностью квалифицирован.

Это произошло со мной после использования рефакторинга Eclipse для перемещения абстрактных классов, унаследованных от вложенного интерфейса. После перемещения у всех подклассов появилось сообщение «иерархия типа X непоследовательна». Проблема была решена путем импорта вручную в перемещенные абстрактные классы.

1 голос
/ 09 ноября 2013

На самом деле проблема была в том, что я сделал AbstractListView @Configurable. Когда я поместил эту аннотацию в последний класс (например, BankView), все ошибки исчезли.

Спасибо всем за помощь. Если у кого-то будет такая же ошибка, он найдет решение в разных ответах.

1 голос
/ 08 ноября 2013

Вы пытались закрыть и открыть затмение? Иногда это помогает. Мое затмение (вероятно, потому что я на платформе Windows) часто показывает подобные ошибки, единственное решение - выйти из затмения и открыть его позже.

1 голос
/ 14 августа 2013

Переконфигурируйте Build Path для решения проблемы.

0 голосов
/ 11 сентября 2017

Идите и фактически проверьте свой путь сборки (Свойства проекта => Путь сборки Java => Библиотеки), и в диалоговом окне может появиться сообщение о том, что чего-то не хватает. Это была моя проблема, когда проект работал, но через месяц или два он перестал работать, потому что моя установка JRE изменилась.

0 голосов
/ 18 мая 2016

Я решил эту проблему, добавив javax.servlet-api-3.0.1.jar. мой инструмент разработки - Eclipse, но мой проект был разработан под myeclipse, затем, когда я импортирую проект в eclipse, он выбрасывает «иерархия типа SysUserFilter не согласована», поэтому я думаю, что myeclipse автоматически предоставляет javax.servlet-api-3.0 .1.jar, но затмения нет. Поэтому его нужно импортировать вручную.

0 голосов
/ 16 марта 2016

Я решил эту ошибку Иерархия типа ServiceController противоречива проблема с удалением всех Referenced Libraries из банок в Build Path и повторным добавлением всехбанки в затмении IDE.

0 голосов
/ 27 апреля 2015

Эта ошибка также появляется, когда происходит несовпадение библиотеки поддержки Android, т.е. когда две внешние библиотеки, которые вы используете, имеют две версии библиотеки поддержки, эта ошибка показывает (что я сделал, я сделал их обеими версиями, удалив одну и скопировавподдержка от сторонней библиотеки к этому)

...