valueOf() в Java возвращает объект Но почему там нет хеш-кода?
API для Integer.valueOf("123") возвращает объект. Так что, если я пишу это
System.out.println(Integer.valueOf("456"));
или же System.out.println(String.valueOf(256));
это должно дать мне хэш-код объекта, но вместо этого он печатает простые значения 456 и 256.
Так может кто-нибудь объяснить мне, почему вместо хэш-кода я получаю значение
Спасибо:)
2 ответа
Решение
Так как Integer
а также String
переопределяет toString()
метод.
Так же 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;
}
Integer
а также String
переопределение toString()
Вот почему вы не получаете реализацию по умолчанию Object
,
Строка toString:
public String toString() {
return this;
}
Целое число toString:
public String toString() {
return String.valueOf(value);
}