InteliJ IDEA中如何定位lambda的匿名实现类的源码?

其实这个问题困扰我好几年了....
例如有一个@FunctionalInterface的接口:

@FunctionalInterface
public interface IDemo{
    void foo();
}

在某个SomeCompoment类的某个方法中,其他人用匿名类实现了上面的接口并使用,而且更重要的是,这个SomeComponent因为一些原因所以代码量比较多:

public class SomeComponent{
    public void bar(){
        ...
        xxx.invoke(abc, ()->{...});//此处的lambada表达式是一个IDemo的匿名实现
        ...
    }
}

现在我想查看IDemo接口的实现有哪些,用idea的快捷键options+command+b会正确告诉我有一个Anonymous的class在SomeComponent中实现了,但是当我点进去想看一下具体的实现源码时,idea只会让我停留在SomeComponent源码的第一行上,但这里面的代码非常多,我完全不想一行一行的查找这个匿名类。

所以在idea中,有什么办法可以快速的定位这样的lambda格式的匿名类源码吗?

阅读 2.1k
1 个回答

....刚提问完就找到方法了....
进入到包含匿名类的代码中后————例如上面例子中的SomeComponent————,使用“方法查找”,例如command+F12,<font color=red>然后重点是这个时候要选中上面的Anonymous classesLambdas</font>,然后查找lambda,最后在筛选出来的结果中观察哪个的接口的IDemo

随便仍然有点费事,但比以前自己一行一行代码的用肉眼看要轻松多了。

如果有更好的办法还请告知..

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进