san*_*ity 6 java reflection hashcode
Javadocs说:
返回此Method的哈希码.哈希码被计算为底层方法声明类名和方法名的哈希码的异或.
这个描述中明显缺少的是Method的参数类型的类型 - 这是否意味着同一个类上具有相同名称但参数不同的两个方法会有相同的hashCode()?
你是对的 - 如文档所述,具有相同名称和相同声明类的方法具有相同的哈希码。我同意,这有点违反直觉。
Sun的JDK中的代码:
public int hashCode() {
return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
}
Run Code Online (Sandbox Code Playgroud)
但这hashCode()并不是平等的标志。该equals(..)方法考虑了参数。
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |