gpt4 book ai didi

java - 方法的用例,System.identityHashCode(Object x)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:43:25 24 4
gpt4 key购买 nike

我阅读了此 JAVA API 方法 System.identityHashCode(Object x) 的 javadoc,但无法理解此方法的典型用例。需要 hashCode() 的类建议覆盖它们自己的 hashCode() 方法,所以如果 Object 类已经有默认的 hashCode,这个方法的目的是什么()?

最佳答案

假设类 C 扩展了类 B 并且类 B 覆盖了 hashCodeequals

现在假设对于类 C,您希望使用 Object 类中实现的 hashCodeequals 的默认实现。通常您不想这样做,但假设 C 类的每个实例都应该是某个 HashMap 中的唯一键。

你可以这样写:

public class C extends B
{
@Override
public int hashCode ()
{
return System.identityHashCode(this);
}

@Override
public boolean equals (Object other)
{
return this == other;
}
}

同样的,如果B重写了toString,而你想让C的toString默认实现Object类,你可以在C中这样写:

@Override
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(this));
}

关于java - 方法的用例,System.identityHashCode(Object x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com