【发布时间】:2017-11-11 04:03:45
【问题描述】:
有没有办法检测一个类的任何超类是否覆盖了 hashCode 或 equals?
示例
D 扩展C 扩展B 扩展A 扩展Object
B 实现自己的哈希码和等于
因此我需要一个返回的方法
- 为
Afalse - 为
Btrue - 为
Ctrue - 为
Dtrue
这可能吗?
或者
如果有一个解决方案需要A 覆盖hashCode and equals 而不是B,那也很好。主要的是我知道默认的 Object 哈希码和 equals 没有被使用
【问题讨论】:
-
@Zong 你确定吗?我从类似的答案中尝试了这种 (getMethod()) 技术,它似乎只有在该类专门覆盖它而不是超类时才有效 - 请删除标记为重复并关闭标志,除非您绝对确定
-
是的,我非常肯定,我认为我的回答就是证明:)
-
如果您不认为上述问题是重复的,请展示您从该方法获得的结果以及您的预期,因为尚不清楚您认为它们会有什么不同。
-
@Zong 抱歉,我的代码(在我的项目中)没有使用'getDeclaringClass()',所以我认为它只适用于当前类。现在我按照您的代码进行了修复,谢谢
标签: java