如何在IntelliJ IDEA中定位Kotlin invoke()函数/操作符的所有调用?
在IntelliJ中处理Kotlin函数式接口invoke调用的跳转与用法查找
场景说明
你定义了如下Kotlin代码:
interface Foo : (Int) -> String class FooImpl: Foo { override fun invoke(int: Int): String = TODO() }
调用时使用函数式接口的语法糖:
val foo : Foo = FooImpl() foo() // 需要跳转至FooImpl.invoke(),并查找所有此类调用
跳转到FooImpl.invoke()的方法
- 按住Ctrl(Windows/Linux)或Cmd(Mac),右键点击
foo()调用处,选择「Go to Implementation」,直接跳转至实现方法。 - 光标定位在
foo()上,使用快捷键:Ctrl+Alt+B(Windows/Linux)或 Cmd+Alt+B(Mac),快速跳转至FooImpl.invoke()。 - 若直接点击跳转无效,先选中
foo(),按Ctrl+Shift+I(Windows/Linux)或 Cmd+Shift+I(Mac)查看invoke的快速定义,再从弹窗中跳转至实现。
查找所有此类调用的方法
- 光标放在
foo()调用处,按Alt+F7(Windows/Linux)或 Cmd+F7(Mac),IntelliJ会列出所有通过函数式接口语法糖调用invoke的实例(包括foo()这种写法)。 - 若要精准查找
FooImpl.invoke()的所有调用,先跳转至该方法,再按Alt+F7/Cmd+F7,或右键点击方法选择「Find Usages」,即可获取所有直接、间接调用(含语法糖形式)。
注意事项
确保IntelliJ的Kotlin插件为最新版本,避免因插件兼容问题导致语法糖识别异常。
内容的提问来源于stack exchange,提问作者igr
相关产品推荐
相关产品推荐

