我有一个覆盖equals()的类,我想看看这个 equals方法在工作区中的使用位置。使用Eclipse,我通常会使用Ctrl-Shift-g查找工作区中的所有引用。不幸的是,对于equals(),它会从任何类型中拉回我的工作空间中的每个等号引用,而不仅仅是我覆盖它的那个,并且不可能找出许多结果中的哪一个与我的搜索相关。我想做什么?
编辑:澄清。我有一个覆盖equals方法的A类。我有一个B类(和其他)使用 A类但不扩展它。我想找到我的工作区中哪些类使用Class A的equals方法,无论它们是否属于Class A的层次结构,如B类。
答案 0 :(得分:15)
让你的equals实现暂时抛出类Throwable:equals(Object obj) throws Throwable
。
当然这会给你的equals实现一个编译错误,因为它与Objects.equals()
不兼容,但是你也会在使用你的equals方法的所有类中得到一个编译错误(至少所有的类)哪些不处理/抛出Throwable自己):
未处理的异常类型Throwable
答案 1 :(得分:3)
一般情况下,你不能这样做,因为equals在Object上,例如
mysession.getAttribute( “someobject”)。等于(富)
无法检测到此对象是您的类类型。
答案 2 :(得分:2)
创建主界面的副本,具有不同名称的类。从这些新接口/类实现/扩展。然后使用Ctrl + Shift + G搜索方法的引用。
面对同样的情况时,为我工作。
答案 3 :(得分:-1)
右键单击您的equals方法并选择选项
References--> Hierarchy