Почему методы String.format имеют типы данных?

Я имею в виду, например, %s и %d. Почему требуется, чтобы тип данных был определен в формате? Например, почему бы не иметь %@ для любого типа? Обратите внимание, что это общий вопрос для любого языка программирования с функцией форматирования, такого как Java.

Вы имеете в виду %s, который печатает строковую версию для любого типа объекта?

ernest_k 18.12.2018 09:10

В C функция не знает типы данных, которые ей были переданы, поэтому она полагается на эти строки формата для их определения. В java тип данных передается, здесь он действует как своего рода отказоустойчивый на случай, если вы что-то напутали. Кроме того, поскольку некоторые параметры форматирования зависят от типа данных, все они не могут использоваться с вашим %@, поэтому %@ будет очень ограниченным спецификатором, требующим больших усилий (определения типа) для работы.

Poohl 18.12.2018 09:18
%04x или %6.2f полезны, и в этих случаях кажется целесообразным резервирование. А еще есть альтернативный MessageFormat с параметрами {} - и интернационализация (числа с разделителями тысяч и тому подобное).
Joop Eggen 18.12.2018 09:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
54
0

Другие вопросы по теме