对于上下文,请说我有这些类:
public class Foo {
public void doStuff() {}
}
public class Bar extends Foo {
@Override
public void doStuff() {}
}
public class Zig extends Foo {
@Override
public void doStuff() {}
}
我正在尝试查找仅对Bar#doStuff()
的调用。
我试过了:
Bar.doStuff
但它们似乎会返回对Bar#doStuff()
和 Bar.doStuff()
和 Foo.doStuff()
的调用。还有其他我需要做的事情,还是我误解了我得到的结果?
答案 0 :(得分:1)
好吧,由于多态性,IDE没有一种好方法可以知道给定的Foo 不是可能是一个Bar - 所以它会显示对{{1}的所有调用}。我想它可以做更多的分析来确定doStuff
的具体类型确实是Foo
- 例如,在这种情况下:
Foo
肯定不是一个final Foo foo = new Foo();
- 但这是一项很少有益的工作。
您会注意到接口及其实现也是如此,至少在Eclipse中是这样。
答案 1 :(得分:1)
要从Bar
中找到肯定的来电,您可以将Bar#doStuff
标记为@Deprecated
,然后创建一个新的“问题”视图过滤以找到这些消息。
创建新的Problems视图:
New Problems View
Configure Contents
Errors/Warnings in Project
contains
过滤器(在Description
标题下) 注意:这不会找到将Bar
存储为Foo
的情况,例如:
Foo f = new Bar();
f.doStuff();