GhostCat敬礼モニカC.:
私はいくつかのインタフェースを持ってAction
、そのインターフェイスを実装するクラスのほとんどは、いくつかの塩基から誘導されていますAbstractAction
。しかし、私はその基本クラスを拡張しないそのインターフェイスを実装し、いくつかのクラスがあると仮定します。
このようなクラスを識別するためのIntelliJを使用して方法はありますか?(理想的に:コミュニティ版を使用して)
編集:これは、の重複ではないのIntelliJ IDEAでクラスのすべての親とサブクラスを表示する方法は?、私は「XとNOTは、Yを拡張する道具」のような条件を組み合わせるために探していますと。
ピーター:
だけで作品のIntelliJ IDEAアルティメットエディション:
のIntelliJ IDEAと直接あなたの問題を解決するための一種に私の心に入ってくる唯一のものは生成することであるUMLクラスdiagrammあなたのAction
インターフェイスを。
これは階層パターンを視覚的に検索できます。
ここのためdiagrammあるJTextComponent
例としては:
別のアプローチ - 仕事のための適切なツールを使用して、
jqassistantはそののNeo4jデータベースにJavaコードとの関係や店舗を分析するツールです。これは、あなたが持つグラフクエリとして、あなたの問題を記述することができますCYPHER。
始めるための最も簡単な方法はにあります
- バイナリディストリビューションのダウンロードjqassistantを
- 実行し
./bin/jqassistant.sh scan -f your_application.jar
、その後、 - 介してサーバを起動します
./bin/jqassistant.sh server
- そしてオープンのhttp:// localhostを:7474 /ブラウザ/
例:実装するすべてのクラスを見つけるためのクエリは、aInteface
次のようになります
MATCH (i:Interface {name:"aIntefaces"} )<-[:IMPLEMENTS]- (c) RETURN i,c
あなたの問題へのクエリは次のようになります。
MATCH
(i:Interface {name:'Action'} )<-[:IMPLEMENTS|EXTENDS*1..10]- (class),
(abstractAction:Class {name:'AbstractAction'})
where not (class)-->(abstractAction)
RETURN class