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);
}
Другие вопросы по тегам