Integer.toString()

Почему метод Integer.toString() реализуется с помощью String.valueOf(int i) вместо использования непосредственно статического метода Integer.toString(int i), который вызывается обратно String.valueOf(int i)?

Обновление: я работаю с Sun (теперь Oracle) jdk 1.6.0_12

Ответ 1

Причина, вероятно, историческая. Версия Java 1.0 была сделана в спешке, чтобы попытаться встретиться (что было воспринято) закрывающим окном возможностей. В дизайне API было сделано много ошибок. Но ко времени Java 1.1 разработчики поняли, что ошибки исправления в API могут нарушить существующие программы и оттолкнуть разработчиков и пользователей. Поэтому они решили оставить ошибки (особенно незначительные несоответствия) незафиксированными.

Это лишь одно из этих незначительных несоответствий. На практике это не имеет никакого значения, поскольку компилятор JIT будет в любом случае встраивать вызовы.