我有一些接口Action
,实现该接口的大多数类都是从某个基础AbstractAction
派生的。但是我假设有一些实现该接口的类,但是并没有扩展该基类。
是否可以使用IntelliJ识别此类? (理想情况下:使用社区版)
编辑:这不是How to show all parents and subclasses of a class in IntelliJ IDEA?的副本,因为我希望合并诸如“实现X而不能扩展Y”的条件。
答案 0 :(得分:3)
仅在 Intellij IDEA Ultimate Edition 中工作:
我唯一想直接使用Intellij IDEA解决问题的方法就是生成Action
接口的uml class diagramm。
这使您可以直观地搜索层次结构模式。
下面以JTextComponent
的图表为例:
另一种方法-使用正确的工具完成工作
jqassistant是一个工具,可以分析您的Java代码及其关系并将其存储到neo4j数据库中。 这使您可以将问题描述为使用cypher的图形查询。
最简单的入门方法是
./bin/jqassistant.sh scan -f your_application.jar
,然后./bin/jqassistant.sh server
示例:
查找所有实现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