Получение строки формата из объекта Format

В Java есть способ получить строку формата из объекта Format (или любых производных классов)

В коде:

Format f = new DecimalFormat("$0.00");
System.out.println(???);

Есть ли что-то, что я могу использовать, чтобы получить System.out.println(???); распечатать "$0.00".

Я посмотрел на toPattern(); но эта функция не появляется в абстрактном классе Format, и переменная, с которой я работаю, может быть чем угодно, что расширяет Format.

4 ответа

Шаблон (если есть вообще) зависит от подкласса Format, Там нет никакой гарантии, что Format будет даже использовать шаблон для его форматирования.

Изменить: я не уверен, что вы пытаетесь сделать, но если вам нужно сохранить экземпляр формата, это сериализуемый.

Боюсь, нет такой удачи! Вы должны знать, с каким подклассом вы имеете дело, и вызвать соответствующий метод:-(

Не существует прямого способа сделать это из родительского формата. поскольку шаблоны действительно существуют на листьях иерархии формата (SimpleDateFormat, MessageFormat, ChoiceFormat, DecimalFormat); которые имеют методы toPattern. Поскольку это, кажется, соглашение, вы можете получить его с помощью рефлексии.

Я не уверен, что у вас есть доступ к коду, но если вы примените это небольшое изменение в первой строке, вы сможете получить информацию, которую вы ищете таким образом:

DecimalFormat f = new DecimalFormat("$0.00"); 
System.out.println(f.toPattern());
Другие вопросы по тегам