Получение строки формата из объекта Format - PullRequest
3 голосов
/ 13 апреля 2009

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

В коде:

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

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

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

Ответы [ 4 ]

1 голос
/ 13 апреля 2009

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

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

0 голосов
/ 14 апреля 2009

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

DecimalFormat f = new DecimalFormat("$0.00"); 
System.out.println(f.toPattern());
0 голосов
/ 13 апреля 2009

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

0 голосов
/ 13 апреля 2009

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

...