抽象クラスを実装するクラスがあります。抽象クラスは、私のプロジェクトの別のパッケージにあります。Configure build path/Project でクラスが抽象化されているパッケージを追加しました。実装するクラスで、次のエラーが非難されています: The hierarchy of the type class is inconsistent.
このパッケージを別の場所に追加する必要がありますか?
ありがとうございました!
抽象クラスを実装するクラスがあります。抽象クラスは、私のプロジェクトの別のパッケージにあります。Configure build path/Project でクラスが抽象化されているパッケージを追加しました。実装するクラスで、次のエラーが非難されています: The hierarchy of the type class is inconsistent.
このパッケージを別の場所に追加する必要がありますか?
ありがとうございました!
これらのエラーは、階層内の一部のインターフェイス/クラスを解決できないために発生しました。例: エラーはクラスにあります - クラス X、X は Y を継承し、Y は Z を継承します。ただし、z は含まれていないライブラリに属しているため、コンパイラは z (上記のエラー) を解決できません。したがって、z を含むパッケージを classpath/ またはプロジェクトの Java ビルド パス (Eclipse を使用している場合) に追加する必要があります。それが役立つことを願っています。
プロジェクト エクスプローラーに移動します。
エラーは解決されます。
これは、スーパー クラスで互換性のない変更を行ったが、再コンパイルしていないことを意味します。
Maven や Ant などのビルド システムを使用するか、IDE を使用してすべてのコードをビルドすることをお勧めします。
つまり、実装したクラスには、他のライブラリの他のクラスまたはインターフェースを再度参照するインターフェースまたはクラスへの参照があり、それらは使用できません。
springframework.aop jar は aopalliance.jar に依存しています クラスパスに追加すると問題が解決されます それが機能することを願っています 私は同じ問題に直面していたので依存関係のある jar を追加したので解決しました
Eclipse、OSGi 環境では、必要なパッケージを MANIFEST.MF -> 依存関係タブ -> インポートされたパッケージに追加できます。これで問題は解決します。または、クラスを含むプラグインを必要なプラグインに追加できます
プラグインプロジェクトのクラスを別のプロジェクトで使用しようとしたときにも、この問題が発生しました。myClass extends pp1Class のようなものがありました-ここでエラーが発生しました.pp1Classプラグインが依存関係として追加されました。pp1Class は pp2Class を拡張します。これは pp1 (プラグイン proj1) では依存関係でしたが、私のプラグインでは依存関係がありませんでした。私がしたことは、pp1 に移動し、pp2 への依存関係を定義した場所で、プロパティをクリックし、「この依存関係を再エクスポートする」(これは MANIFEST.MF にあります) を確認することでした。これは問題を解決するはずです、それは私のものを解決しました。
right click your project ,Properties- java build path- source- include all the cs file source(it may inherit the files) and sync.
これは私にとって正しく機能しました。
このエラーのもう 1 つの理由は、基本クラスの 1 つが外部ライブラリにあるインターフェースを実装しており、.classpath ファイルがソース管理システムに保持されている (したがって読み取り専用) ことです。
たとえば、ClassB は ClassA を拡張し、ClassA は LibraryA.jar にある InterfaceA を実装します。ClassA は ProjectA にあり、ClassB は ProjectB にあります。ProjectA .classpath ファイルは読み取り専用です。
ここで、LibraryA.jar を ProjectA からエクスポートする必要があります。しかし、Eclipse のバグが原因で、新しいチーム メイトがこれらのプロジェクトに接続すると (または別のワークスペースを準備するとき)、彼はこの型階層エラーを受け取ると思います。この問題を解決する唯一の方法は、ProjectA の .classpath ファイルをチェックアウトし、ライブラリを削除して再度追加することです (LibraryA.jar である必要はありません)。この操作により、何らかの形でエラーが解決されます。
関連するすべてのjarとインターフェースを実際にビルドパスに追加しましたが、それでもエラーに直面していたので、後で誰かがj2ee.jarをビルドパスに追加するように提案し、エラーは消えました。