我现在遇到了以下问题:
我有一个特定的类,其中重写了 equals() - 方法。但是我不确定它是否曾经被使用过(在我的或我的一个同事项目中)。有办法找出来吗? 当我搜索引用时,它只是给了我对 Object equals() - 方法(相当多)的所有引用。肯定有比扫描所有这些更简单的方法......
有人知道吗?
最佳答案
您要求 Eclipse 解决一项不可能完成的任务。
确定是否调用特定的重写方法不是静态可判定的,这就是 Eclipse 过度近似响应的原因。
假设您有一些字段 Object o
并且您在某个时候执行 o.equals(...)
。要确定 o
是否可以引用 YourClass
对象,需要确定每个可能的执行路径上 o
的运行时类型,这根本无法静态完成。
不可能的原因与编译器拒绝以下代码的原因非常相似:
Object o = "hello";
System.out.println(o.length());
你能做的最好的事情可能是调试你的程序,要么通过设置一个断点,要么通过在 equals 方法中抛出一个 UnsupportedOperationException。
关于java - 有没有办法使用 Eclipse 列出某个类的所有 equals() 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10602696/