Eclipseで特定のインターフェースを実装しているクラスを見つける方法は?


88

多くの依存関係を持つアプリケーションをJARファイルとして持っています。何らかの理由で、ライブラリの1つを逆コンパイルしてEclipseで開く必要があります。プロジェクトの特定のインターフェースについて、それを実装するクラスを見つける方法はありますか?インターフェイスがまだ逆コンパイルしていない他のライブラリに実装されていた可能性があります。この種のクラスでこれを行うことは可能ですか?

回答:


114

インターフェイスを右クリックし、[タイプ階層を開く]を選択します。次に、「サブタイプ階層を表示」をクリックします。


「サブタイプの階層を表示」をクリックすると、何も表示されませんでした。クラスが実装していないインターフェースが表示されます。
Am1rr3zA 2011

1
次に、プロジェクトのJavaビルドパスのどのクラスもこのインターフェースを実装しないことを意味します。もちろん、Eclipseは潜在的なクラスについて知っている必要があります。それらを含むjarファイルは、プロジェクトのJavaビルドパスにある必要があります。
JBニゼット2011

他のjarファイルをJavaビルドパスに追加する必要があるということですか?
Am1rr3zA 2011

5
はい、もちろん。Eclipseはクラスパス内のクラスのみを認識します。ハードディスク全体をスキャンして、インターフェイスを実装するクラスを見つけることはありません。
JBニゼット2011

他のJarファイルをJavaビルドパスに追加しましたが、まだ実装が表示されませんでした。リフレクションを介して使用できるので、いくつかのクラスがそれを実装していると確信しています。
Am1rr3zA 2011

47

クラス名を選択してからCtrl+ Tを試してください。Javaパースペクティブで動作するはずです。


10

項目に「タイプ階層を表示」できます(右クリックしてこのオプションを選択するかF4、項目が強調表示されているときに押します)*。

ただし、これは、参照される(「依存する」)プロジェクトのアイテムのみをリストします。他ではありません。

したがって、jarを逆コンパイルしていて、逆コンパイルしていない別のjarがある場合、そのjar内の(インターフェースの)実装はリストされません。

また、jarをプロジェクトとして逆コンパイルしていて、逆コンパイルされたプロジェクトではなく、そのjarを参照している別のプロジェクトがあるとすると、その実装もリストされません。

そのため、すべてのjarを逆コンパイルしてプロジェクトとして追加し(そして「Javaビルドパス」を介して参照を追加)、選択したjar内のすべての実装がリストされていることを確認する必要があります。

*クイックタイプの階層、ctrl + T は、ツールチップ/オートコンプリートの種類のパネルに同様の構造を表示します。ただし、完全なタイプ階層は、実行しようとしている分析のタイプにとってより有用です。


8

Java Searchにはラジオボタンの「実装者」があります。


3
どうして質問に答えないのですか?Java Searchを開き、インターフェース名を入力して、「Implementors」をクリックすると、「特定のインターフェースを実装するクラスを見つける」ことができます。
stackexchanger 2015

1

または、右クリックしQuick Type Hierarchyて、拡張インターフェースと実装クラスのプルダウンメニューを選択します。


右クリックして[Quick Type Hierarchy]を選択すると、クラスではなくインターフェイスが実装されているだけです
Am1rr3zA

0

Ctrl + H(検索オプション)Java検索パースペクティブを開き、インターフェース名を入力して、「実装者」ラジオボタンをクリックすると、特定のインターフェースを実装するクラスが見つかります。上記のstackexchangerからの回答と同じ


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.