Получение строки формата из объекта 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());