Eclipse Иерархия типа... не соответствует @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 !");
}
}
}
Что вызывает эти маркеры ошибок?
Ответы
Ответ 1
На самом деле проблема заключалась в том, что я создал AbstractListView @Configurable. Когда я помещаю эту аннотацию в последний класс (например, BankView), все ошибки исчезли.
Спасибо всем за помощь. Если кто-то имеет ту же ошибку, они найдут решение в разных ответах.
Ответ 2
В моем случае я обнаружил, что ошибка The hierarchy of the type ... is inconsistent
в 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 будет показывать ошибку The hierarchy of the type ... is inconsistent
.
Взгляните на представление проблем в Eclipse, столбец "Описание" более подробен о том, что представляет собой настоящая проблема, чем наведение.
Ответ 3
Переконфигурируйте путь сборки для решения проблемы.
Ответ 4
Вы пытались закрыть и открыть затмение? Иногда это помогает. Мое затмение (возможно, потому, что я на платформе Windows) часто показывает такие ошибки, единственное решение - выйти из затмения и снова открыть позже.
Ответ 5
Другая причина - ссылка на суперкласс или суперинтерфейс, который существует, но находится в другом пакете и не является ни импортированным, ни полным.
Это произошло после использования рефакторинга Eclipse для перемещения абстрактных классов, унаследованных от вложенного интерфейса. После перемещения все подклассы имели сообщение "иерархия типа X несовместимо". Проблема была решена путем импорта вручную в абстрактных классах, которые были перемещены.
Ответ 6
Моя проблема заключалась в том, что классы/баны были перекомпилированы вручную за пределами Eclipse с помощью задач ant и gradle. Обновление всех проектов и восстановление в затмении заставили ошибки исчезнуть.
Ответ 7
Их вероятность того, что ваши maven-зависимые объекты не распознаются. Посмотрите, есть ли у вас Maven для данного проекта.
В Eclipse Maven можно активировать, щелкнув правой кнопкой мыши на проекте и выбрав
Maven → Включить зависимости Maven.
Ответ 8
В моем случае я использовал неправильную версию JRE.
Ответ 9
У меня была эта проблема, когда я добавил actionbarsherlock в свой проект Android и забыл удалить библиотеку поддержки из моего оригинального проекта. Решение состоит в том, чтобы удалить android-support-v4.jar из вашего проекта и очистить проект.. он должен загрузить библиотеку из папки actionbarsherlock.
Ответ 10
Я знаю, что это, вероятно, не так, но только для дополнительной информации эта ошибка может быть вызвана при использовании иерархии интерфейсов, и есть некоторая ошибка (например, неправильные генерики) где-то выше в вашей иерархии
Ответ 11
Эта ошибка также появляется, когда происходит несоответствие библиотеки поддержки android-совместимости, т.е. когда две внешние библиотеки, которые вы используете, имеют две версии библиотеки поддержки, которые показывают эту ошибку (что я сделал, я сделал их обеими версиями, удалив их и скопировав поддержка от другой сторонней библиотеки к этому)
Ответ 12
Ошибка говорит о том, что вы не указали какой-либо ссылочный JAR.
В моем случае я получил эту ошибку при создании проекта Spring MVC. Я пропустил добавить связанные файлы JAR (spring -context-4.1.0.RELEASE.jar и spring -web-4.1.0.RELEASE.jar) в пути сборки.
Хотя уже добавлены другие Spring JARs (Core, Beans, AOP и MVC), но также были упомянуты выше указанные JAR файлы, Как только я добавил другие JAR, ошибка исчезла.
Ответ 13
Я решил эту ошибку Иерархия типа ServiceController является непоследовательной проблемой удалением всех Referenced Libraries
jars в Build Path
и re добавить все банки в eclipse IDE.
Ответ 14
Я решил эту проблему, добавив javax.servlet-api-3.0.1.jar. мой инструмент разработки - Eclipse, но мой проект был разработан под myeclipse, а затем, когда я импортирую проект в eclipse, он выбрасывает "иерархию типа SysUserFilter непоследовательна", поэтому я думаю, что myeclipse автоматически предоставляет javax.servlet-api-3.0.1.jar, но eclipse not.so нужно вручную импортировать.
Ответ 15
Перейдите и фактически проверьте свой путь сборки (Свойства проекта = > Путь сборки Java = > Библиотеки), и диалог может показать вам, что что-то отсутствует. Это была моя проблема, когда проект работал, но через месяц или два он прекратил работать, потому что изменилась настройка JRE.