Ближайший Java эквивалент Python %r
равен %s
. Преобразование %s
вызовет либо formatTo()
, либо toString()
для аргумента, в зависимости от его типа.
Обратите внимание, что ни Python * repr()
, ни Java * formatTo()
или toString()
предлагает какие-либо общие гарантии на то, что производится. Например, документация Python repr()
гласит:
" Для многих типов эта функция пытается вернуть строку, которая выдаст объект с то же значение при передаче в eval (), в противном случае представление представляет собой строку, заключенную в угловые скобки, которая содержит имя типа объекта вместе с дополнительной информацией, часто включая имя и адрес объекта. "
и далее говорится, что класс может переопределить поведение по умолчанию repr()
.
В случае Java обобщенный c toString()
javado c является даже менее предписывающим.
"Возвращает строковое представление объекта. Как правило, метод toString
возвращает строку, которая« представляет »этот объект в текстовом виде. Результат должен быть кратким но информативное представление, которое легко прочитать человеку. "
Поскольку в 1046 * нет эквивалента Python eval()
, общего Java нет Механизм SE для предоставления экранированных представлений, которые могут быть встроены в сгенерированный исходный код Java.
Таким образом, краткий ответ: Нет. Ничто не достаточно близко к тому, что вам нужно.