gpt4 book ai didi

java - 如何识别所有实现特定接口(interface)但不扩展某些基类的类?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:44 26 4
gpt4 key购买 nike

我有一些接口(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 的图表示例:

enter image description here

另一种方法 - 为工作使用正确的工具

jqassistant是一种分析您的 Java 代码及其关系并将其存储到 Neo4j 数据库中的工具。这使您能够将问题描述为图形查询 cypher .

最简单的开始方式是

例子:查找所有实现 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com