web-dev-qa-db-ja.com

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

これらのエラーマーカーの原因は何ですか?

35
c4k

実際、問題はAbstractListViewを@Configurableにしたためです。この注釈を最終クラス(BankViewなど)に配置すると、すべてのエラーが消えました。

助けてくれてありがとう。誰かが同じエラーを持っている場合、彼らは異なる答えで解決策を見つけます。

1
c4k

私の場合、The hierarchy of the type ... is inconsistentビルドパスにないクラスを参照するクラスを拡張しているjarファイルクラスが原因のEclipseのエラー。

あなたが持っている場合:

// 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の問題ビューを見てください。説明列は、実際の問題がホバーオーバーよりも詳細になっています。

50
Alex

日食を閉じたり開いたりしようとしましたか?時々役立つ。私のEclipseは(おそらくWindowsプラットフォームにいるため)そのようなエラーをしばしば表示しますが、唯一の解決策はEclipseを終了して後で開くことです。

1
rotterick

別の原因は、存在しているが別のパッケージにあり、インポートも完全修飾もされていないスーパークラスまたはスーパーインターフェースへの参照です。

これは、Eclipseリファクタリングを使用して、ネストされたインターフェイスから継承した抽象クラスを移動した後に発生しました。移動後、すべてのサブクラスに「X型の階層が矛盾しています」というメッセージが表示されました。この問題は、移動した抽象クラスを手動でインポートすることで解決しました。

1
Andy Thomas

私の問題は、antおよびgradleタスクを使用してEclipseの外部でクラス/ jarを手動で再コンパイルしたことでした。すべてのプロジェクトを更新し、Eclipseで再構築すると、エラーがなくなりました。

1
jp093121

ビルドパスを再構成して問題を解決します。

1
Kanwaljit Singh

このエラーを解決しましたServiceControllerタイプの階層に一貫性がありません問題削除 all Referenced Libraries of jars in Build Pathそして、Eclipse IDEですべてのjarを再追加します。

0
pudaykiran

それらは、Mavenの依存関係が認識されない可能性があります。この特定のプロジェクトでMavenが有効になっているかどうかを確認してください。 Eclipseでは、プロジェクトを右クリックしてMavenを選択し、Maven依存関係を有効にすることでMavenをアクティブにできます。

0
Th 00 mÄ s

私の場合、間違ったJREバージョンを使用していました。

0

私はこれがおそらくここではないことを知っていますが、追加情報のために、インターフェイスの階層を使用しているときにこのエラーが発生する可能性があり、階層のどこかに高いエラー(ジェネリックが間違っているなど)がある

0
stikku

行って、実際にビルドパスを確認し(プロジェクトプロパティ=> Java Build Path => Libraries))、ダイアログに何かが欠けていることが表示される場合があります。その後、1、2か月後にJREセットアップが変更されたため、動作しなくなりました。

0
Andrew

Javax.servlet-api-3.0.1.jarを追加して、この問題を解決しました。私の開発ツールはEclipseですが、私のプロジェクトはmyeclipseの下で開発されたので、プロジェクトをEclipseにインポートすると、「SysUserFilter型の階層が矛盾しています」がスローされるため、myeclipseは自動的にjavax.servlet-api-3.0を提供すると思います.1.jar、ただしEclipseではないため、手動でインポートする必要があります。

0
ZhaoJing

このエラーは、Androidサポートライブラリの不一致が発生した場合にも表示されます。使用する2つの外部ライブラリに2つのバージョンのサポートライブラリがある場合、このエラーが表示されます。これにサードパーティのライブラリ)

0
George Thomas

ActionbarsherlockをAndroidプロジェクトに追加し、元のプロジェクトからsupport-libraryを削除するのを忘れたとき、この問題が発生しました。プロジェクトからAndroid-support-v4.jarを削除して、プロジェクト.. actionbarsherlockフォルダからライブラリをロードする必要があります。

0
vanomart