如何在 Eclipse 的工作区中查找对 equals() 的特定类型引用?

2022-09-04 02:04:14

我有一个覆盖 equals() 的类,我想看看这个 equals 方法在工作区中的使用位置。使用Eclipse,我通常执行Ctrl-Shift-g,它可以查找工作区中的所有引用。不幸的是,对于 equals(),它从任何类型的工作区中拉回了 equals 的每一个引用,而不仅仅是我覆盖了它的那个,并且不可能找出许多结果中的哪一个与我的搜索相关。我想做的事情可能吗?

编辑:澄清。我有一个类A,它覆盖了等于方法。我有一个B类(和其他类),它使用类A但不扩展它。我想查找工作区中的哪些类使用类 A 的 equals 方法,而不管它们是否属于类 A 的层次结构(如类 B)。


答案 1

让你的 equals 实现暂时抛出类 Throwable: 。equals(Object obj) throws Throwable

当然,这会给你的 equals 实现带来编译错误,因为它与 不兼容,但是你也会在使用 equals 方法的所有类中收到编译错误(至少所有不处理/抛出 Throwable 本身的类):Objects.equals()

未处理的异常类型可抛出


答案 2

一般来说,你不能这样做,因为平等是在对象上,例如

mysession.getAttribute(“someobject”).equals(foo)

无法检测到此对象是您的类类型。