it-swarm.com.de

Eclipse Die Hierarchie des Typs ... stimmt nicht mit der Annotation @Configurable überein

Ich entwickle eine Spring/Vaadin/Hibernate-Anwendung.

Alles funktioniert, aber ich habe in Eclipse STS 2.8.1 immer noch die folgenden Fehlermarkierungen:

The hierarchy of the type BankView is inconsistent
The hierarchy of the type AbstractEntityView is inconsistent

Ich habe folgende Struktur für meine Ansichten:

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 !");
        }
    }
}

Was verursacht diese Fehlermarkierungen?

35
c4k

In der Tat war das Problem, weil ich AbstractListView @Configurable gemacht habe. Als ich diese Annotation in die letzte Klasse (zum Beispiel BankView) einfügte, verschwanden alle Fehler.

Vielen Dank an alle für die Hilfe. Wenn jemand den gleichen Fehler hat, wird er in den verschiedenen Antworten eine Lösung finden.

1
c4k

In meinem Fall fand ich die The hierarchy of the type ... is inconsistent Fehler in Eclipse, der durch eine JAR-Dateiklasse verursacht wird, von der aus ich meine Klasse erweiterte, die auf eine Klasse verweist, die sich nicht im Erstellungspfad befindet.

Also, wenn Sie haben:

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

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

// in the current project
class ProblematicClass extends FromDepJar {}

Ob dep.jar ist im Klassenpfad des Projekts, aber other.dep.jar ist nicht, Eclipse zeigt die The hierarchy of the type ... is inconsistent Error.

Werfen Sie einen Blick auf die Problemansicht in Eclipse. Die Spalte Beschreibung enthält ausführlichere Informationen zum eigentlichen Problem als der Schwebeflug.

50
Alex

Haben Sie versucht, Eclipse zu schließen und zu öffnen? Manchmal hilft es. Meine Eclipse (wahrscheinlich, weil ich auf einer Windows-Plattform bin) zeigt oft solche Fehler. Die einzige Lösung ist, Eclipse zu beenden und später wieder zu öffnen.

1
rotterick

Eine weitere Ursache ist ein Verweis auf eine Superklasse oder eine Superschnittstelle, die vorhanden ist, sich jedoch in einem anderen Paket befindet und weder importiert noch vollständig qualifiziert ist.

Dies ist mir aufgefallen, nachdem ich mithilfe von Eclipse-Refactoring abstrakte Klassen verschoben habe, die von einer verschachtelten Schnittstelle geerbt wurden. Nach dem Verschieben hatten alle Unterklassen die Meldung "Hierarchie vom Typ X ist inkonsistent". Das Problem wurde gelöst, indem die verschobenen abstrakten Klassen von Hand importiert wurden.

1
Andy Thomas

Mein Problem war, dass Klassen/Jars außerhalb von Eclipse mit Ant- und Gradle-Tasks manuell neu kompiliert wurden. Durch das Aktualisieren aller Projekte und das Neuerstellen in Eclipse sind die Fehler verschwunden.

1
jp093121

Konfigurieren Sie Build Path neu, um das Problem zu beheben.

1
Kanwaljit Singh

Ich habe diesen Fehler behoben Die Hierarchie des Typs ServiceController ist inkonsistent Problem durch Entfernen alle Referenced Libraries von Gläser in Build Path und fügen Sie erneut alle Gläser in Eclipse IDE hinzu.

0
pudaykiran

Es besteht die Möglichkeit, dass Ihre Maven-Abhängigkeiten nicht erkannt werden. Überprüfen Sie, ob Sie Maven für dieses Projekt aktiviert haben. In Eclipse kann Maven aktiviert werden, indem Sie mit der rechten Maustaste auf das Projekt klicken und Maven -> Enable Maven Dependencys auswählen.

0
Th 00 mÄ s

In meinem Fall habe ich die falsche JRE-Version verwendet.

0

Ich weiß, dass dies hier wahrscheinlich nicht der Fall ist, aber nur für die zusätzlichen Informationen kann dieser Fehler bei der Verwendung einer Hierarchie von Schnittstellen verursacht werden und es gibt einen Fehler (wie z. B. falsche Generika) irgendwo höher in Ihrer Hierarchie

0
stikku

Überprüfen Sie Ihren Erstellungspfad (Projekteigenschaften => Java Erstellungspfad => Bibliotheken) und der Dialog könnte Ihnen zeigen, dass etwas fehlt. Dies war mein Problem, bei dem das Projekt aber funktionierte Nach ein oder zwei Monaten funktionierte es nicht mehr, weil sich mein JRE-Setup geändert hatte.

0
Andrew

Ich habe dieses Problem durch Hinzufügen von javax.servlet-api-3.0.1.jar gelöst. Mein Entwicklungstool ist Eclipse, aber mein Projekt wurde unter myeclipse entwickelt. Wenn ich das Projekt dann in Eclipse importiere, wirft es "die Hierarchie des Typs SysUserFilter ist inkonsistent", sodass ich denke, dass myeclipse automatisch javax.servlet-api-3.0 bereitstellt .1.jar, aber Eclipse nicht.so muss es manuell importiert werden.

0
ZhaoJing

Dieser Fehler wird auch angezeigt, wenn eine Nichtübereinstimmung der Android-Supportbibliothek auftritt, dh wenn zwei von Ihnen verwendete externe Bibliotheken über zwei Versionen der Supportbibliothek verfügen Drittanbieter-Bibliothek zu dieser)

0
George Thomas

Ich hatte dieses Problem, als ich actionbarsherlock zu meinem Android) Projekt hinzugefügt und vergessen habe, die Support-Bibliothek aus meinem ursprünglichen Projekt zu entfernen. Die Lösung besteht darin, Android-support-v4.jar aus Ihrem Projekt zu entfernen und die project .. sollte die Bibliothek aus dem actionbarsherlock-Ordner laden.

0
vanomart