我有一些接口(interface)Action
,大多数实现该接口(interface)的类都派生自一些基类AbstractAction
。但我假设有一些类实现了该接口(interface),但没有扩展该基类。
有没有办法使用 IntelliJ 来识别此类? (理想情况下:使用社区版)
编辑:这不是 How to show all parents and subclasses of a class in IntelliJ IDEA? 的副本,因为我希望结合“实现 X 而不是扩展 Y”之类的条件。
最佳答案
仅适用于 Intellij IDEA 终极版:
我想到的唯一可以直接使用 Intellij IDEA 解决您的问题的方法是生成 uml class diagramm Action
界面。
这让您可以直观地搜索层次结构模式。
下面是 JTextComponent
的图表示例:
另一种方法 - 为工作使用正确的工具
jqassistant是一种分析您的 Java 代码及其关系并将其存储到 Neo4j 数据库中的工具。 这使您能够将问题描述为图形查询 cypher .
最简单的开始方式是
- 下载二进制发行版 jqassistant
- 运行
./bin/jqassistant.sh scan -f your_application.jar
,然后 - 通过
启动服务器./bin/jqassistant.sh server
- 并打开http://localhost:7474/browser/
例子:
查找所有实现 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
关于java - 如何识别所有实现特定接口(interface)但不扩展某些基类的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664166/