其实这个问题困扰我好几年了....
例如有一个@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格式的匿名类源码吗?
....刚提问完就找到方法了....
进入到包含匿名类的代码中后————例如上面例子中的
SomeComponent
————,使用“方法查找”,例如command+F12
,<font color=red>然后重点是这个时候要选中上面的Anonymous classes
和Lambdas
</font>,然后查找lambda
,最后在筛选出来的结果中观察哪个的接口的IDemo
。随便仍然有点费事,但比以前自己一行一行代码的用肉眼看要轻松多了。
如果有更好的办法还请告知..