你要求Eclipse解决一个不可能完成的任务.
要确定是否调用了特定的重写方法,并不是静态可判定的,这就是Eclipse过度接近响应的原因.
假设你有一些领域Object o,你在某些时候做o.equals(...).要确定是否o可以引用YourClass对象,需要确定o沿着每个可能的执行路径的运行时类型,这不能静态完成.
它不可能的原因与编译器拒绝以下代码的原因非常相似:
Object o = "hello";
System.out.println(o.length());
Run Code Online (Sandbox Code Playgroud)
您可以做的最好的事情可能是通过设置断点或在equals方法中抛出例如UnsupportedOperationException来调试程序.
我想不出一种可以纯粹通过静态分析可靠地完成此操作的方法(我怀疑是否存在)。
可能有用的实用方法是在方法的第一行设置断点equals(),然后在 Eclipse 调试器中启动程序。每当调用该方法时,Eclipse 都会进入调试器。此时,您将能够检查调用堆栈以查看谁调用了该方法。
为了有效地做到这一点,您必须了解哪些代码路径可以调用该方法。如果您无法触发该方法,这并不能证明没有人使用它。