查找 Kotlin 类的主构造函数的用法

问题描述 投票:0回答:5

想象一下,您的基于 Kotlin 的项目中有一个非常重要且广泛使用的类。它有唯一的构造函数,其定义如下:

class MyAwesomeManager(argOne: String, argTwo: String)

出于某种原因,您需要快速找到其构造函数的所有用途。您正在使用 Android Studio(或 Intelllj IDEA)。

但是...在其名称上按 Ctrl + LMB 会产生大量垃圾结果 - 用于导入、伴生对象的字段调用等。class 的所有用途,但不是 constructor。将光标放在其名称上并按 Alt + F7 也是如此。

那么,我如何找到这个主构造函数的所有且仅的用法?

android-studio intellij-idea kotlin hotkeys
5个回答
31
投票

您应该将插入符号放在主构造函数的左括号旁边,但不要放在第一个参数之前。可能添加空格或换行符:

class MyAwesomeManager<caret>(argOne: String, argTwo: String)
//also works
class MyAwesomeManager(<caret> argOne: String, argTwo: String)

然后调用查找用法。这应该只为您提供构造函数调用的用法。

如果因为类有默认的零参构造函数而没有括号,可以暂时在类名后添加

()
,然后按照上面的方法进行。


21
投票

很抱歉这么快回答我自己的问题,但我想我已经找到了解决方案。只需简单两步:

  1. 双击班级名称以选择它
  2. Ctrl+B 查找用法(编辑:Alt+f7 也可以)

我不确定它在所有情况下都有效,但它对我有用。


3
投票

由于您的“查找用法”调用(OSX 上为

Alt+F7
)来自 Kotlin 类名(也是构造函数定义),因此与在 Java 上执行相同操作相比,您将获得更多结果构造函数 - 正如你所看到的。如果从此时起“查找用法”没有显示该类的用法,那么您怎么知道该类在哪里使用?

在我自己的 Kotlin 课程之一上执行此操作,我得到以下结果:

enter image description here

展开“新实例创建”向我展示了构造函数的用法。


0
投票

...随着时间的推移...IntelliJ 不断发展...

如果我将光标放在类名称中的某个位置并调用FindUsages

Alt+F7
),它会找到该类的所有用法。

但是...

如果我将光标直接放在

(
前面并调用 Find Usages (
Alt+F7
),它只会查找对构造函数的调用。


0
投票

如果您将单词“constructor”放在主构造函数的“(”之前,那么您可以针对该单词进行用法搜索。这解释了该位置的重要性 - 如果没有该单词,您必须单击单词所在的位置。

© www.soinside.com 2019 - 2024. All rights reserved.