java - 有没有办法使用 Eclipse 列出某个类的所有 equals() 调用?

标签 java eclipse class equals

我现在遇到了以下问题:

我有一个特定的类,其中重写了 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/

相关文章:

java - 当我从 git 中提取代码时必须删除并重新添加我的服务器

javascript - 如何在多个项目中组织 TypeScript 接口(interface)

jquery - 验证所有表单输入是否具有类别

java - 这个类是另一个类的子类型吗?

java - 无法使用 SQuirrelSQL 连接到 SQL 数据库

java - 谷歌应用引擎 "repackaged"包

java - 有人使用 OSGi 的 OBR 吗?

java - 调用类的接口(interface)方法

java - 项目使用 Ant 编译。但是如果我打开 eclipse,该项目将不再编译

java - 线程中的异常 "main"org.hibernate.TransactionException : nested transactions not supported