Integer.valueOf的API(" 123")返回一个对象..所以,如果我正在写这个
System.out.println(Integer.valueOf("456"));
或System.out.println(String.valueOf(256));
这些应该给我对象的哈希码,而是打印简单值456和256。
所以任何人都可以解释为什么而不是哈希码我得到的值
谢谢:)
答案 0 :(得分:3)
由于Integer
和String
会覆盖toString()
方法。
Integer的hashCode
也是它的int值:
/**
* Returns a hash code for this {@code Integer}.
*
* @return a hash code value for this object, equal to the
* primitive {@code int} value represented by this
* {@code Integer} object.
*/
public int hashCode() {
return value;
}
答案 1 :(得分:1)
Integer
和String
覆盖toString()
,这就是为什么您没有获得Object
的默认实现。
字符串&#39s toString:
public String toString() {
return this;
}
整数toString:
public String toString() {
return String.valueOf(value);
}