15
abstract class Base {}

class A extends Base
class B extends Base

如何在代码中找到创建Base的所有位置?(即有 newA()或 new B()

更新
为了清楚起见,以上只是示例。我对搜索任何类的对象创建的方法感兴趣,包括我无法控制的第 3 方类。

4

3 回答 3

15

使用结构搜索(编辑 -> 查找 -> 结构搜索):

  • 创建模板:new $Type$($P$)
  • 编辑类型变量:在文本字段中键入 Base,选中“在类型层次结构中应用约束”,选中“此变量是搜索的目标”
  • 编辑 P 变量:在文本字段中输入 .*,将最小计数设置为 0,选中最大计数下的无限制。

瞧!

于 2012-04-11T04:16:58.633 回答
7

IttayD 如果我正确理解了您的最新更新,如果我有与您类似的需求,我通常会做的(IntelliJ 9.0.4)是右键单击类名并执行“查找用法”,这将以使用的形式列出结果类别,

  • 变量声明
  • 新实例创建,仅举几例。

据我所知,我认为没有特定的选项/选择选项可以完成这样的使用搜索检查。谢谢

在此处输入图像描述

于 2012-03-30T09:26:02.440 回答
0

您可以创建 Base 的空默认构造函数并按 Ctrl+Alt+H (Hierarchy Callers)。然后,您将看到 A 和 B 的所有创建为一棵树。

于 2012-03-28T10:43:52.343 回答