有没有什么办法可以真正看到标准java类的源码呢?我正在制作点的哈希表 ( HashSet<Point>
),我想确保它能很好地哈希,但我看不到 Point 的 hashCode() 方法实际上是什么样子,所以我不知道有多好确实如此。谁能帮我?我应该覆盖它吗?如果是这样,是否有一种简单的方法可以在不创建全新的 Java 文件/类的情况下执行此操作?
最佳答案
如果您正在搜索 hashCode()
的 java.awt.Point
, 它在 java.awt.geom.Point2D
中定义.
/**
* Returns the hashcode for this <code>Point2D</code>.
* @return a hash code for this <code>Point2D</code>.
*/
public int hashCode() {
long bits = java.lang.Double.doubleToLongBits(getX());
bits ^= java.lang.Double.doubleToLongBits(getY()) * 31;
return (((int) bits) ^ ((int) (bits >> 32)));
}
请注意,“它会很好地哈希吗?”这个问题很难回答,它主要取决于使用模式。
您可以访问几乎所有“标准 Java 类” 的源代码,只需搜索 src.zip
JDK 安装目录中的文件(或使用像 Eclipse/NetBeans 这样的 IDE,然后在类名上单击 F3)。
关于Java - Point 类的 hashCode() 方法是否有用,还是我应该覆盖它并编写自己的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251961/