多くの依存関係を持つアプリケーションをJARファイルとして持っています。何らかの理由で、ライブラリの1つを逆コンパイルしてEclipseで開く必要があります。プロジェクトの特定のインターフェースについて、それを実装するクラスを見つける方法はありますか?インターフェイスがまだ逆コンパイルしていない他のライブラリに実装されていた可能性があります。この種のクラスでこれを行うことは可能ですか?
回答:
インターフェイスを右クリックし、[タイプ階層を開く]を選択します。次に、「サブタイプ階層を表示」をクリックします。
項目に「タイプ階層を表示」できます(右クリックしてこのオプションを選択するかF4、項目が強調表示されているときに押します)*。
ただし、これは、参照される(「依存する」)プロジェクトのアイテムのみをリストします。他ではありません。
したがって、jarを逆コンパイルしていて、逆コンパイルしていない別のjarがある場合、そのjar内の(インターフェースの)実装はリストされません。
また、jarをプロジェクトとして逆コンパイルしていて、逆コンパイルされたプロジェクトではなく、そのjarを参照している別のプロジェクトがあるとすると、その実装もリストされません。
そのため、すべてのjarを逆コンパイルしてプロジェクトとして追加し(そして「Javaビルドパス」を介して参照を追加)、選択したjar内のすべての実装がリストされていることを確認する必要があります。
*クイックタイプの階層、ctrl + T は、ツールチップ/オートコンプリートの種類のパネルに同様の構造を表示します。ただし、完全なタイプ階層は、実行しようとしている分析のタイプにとってより有用です。
Java Searchにはラジオボタンの「実装者」があります。
または、右クリックしQuick Type Hierarchy
て、拡張インターフェースと実装クラスのプルダウンメニューを選択します。
クラス名を選択し、Eclipse(Windows環境)で「F4」を選択します。