java Returns 对象中的 valueOf() 但为什么哈希码不存在?
valueOf() in java Returns Object But why hashcode is not there?
API 用于 Integer.valueOf("123") returns 一个对象.. 所以如果我正在写这个
System.out.println(Integer.valueOf("456"));
或 System.out.println(String.valueOf(256));
这些应该给我对象的哈希码,但它打印的是简单值 456 和 256。
所以谁能解释一下为什么我得到的不是哈希码而是值
谢谢:)
Integer
和 String
覆盖 toString()
,这就是为什么您没有获得 Object
.
的默认实现
字符串的 toString :
public String toString() {
return this;
}
整数的 toString :
public String toString() {
return String.valueOf(value);
}
因为 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;
}
API 用于 Integer.valueOf("123") returns 一个对象.. 所以如果我正在写这个
System.out.println(Integer.valueOf("456"));
或 System.out.println(String.valueOf(256));
这些应该给我对象的哈希码,但它打印的是简单值 456 和 256。
所以谁能解释一下为什么我得到的不是哈希码而是值
谢谢:)
Integer
和 String
覆盖 toString()
,这就是为什么您没有获得 Object
.
字符串的 toString :
public String toString() {
return this;
}
整数的 toString :
public String toString() {
return String.valueOf(value);
}
因为 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;
}