【问题标题】:Retrieving format string from Format object从 Format 对象中检索格式字符串
【发布时间】:2009-04-13 17:33:05
【问题描述】:
在 Java 中有一种方法可以从 Format 对象(或任何派生类)中检索格式字符串
在代码中:
Format f = new DecimalFormat("$0.00");
System.out.println(???);
有什么我可以用来获取 System.out.println(???);打印“$0.00”。
我查看了 toPattern();但该函数不会出现在抽象 Format 类中,我正在使用的变量可以是任何扩展 Format 的变量。
【问题讨论】:
标签:
java
introspection
string-formatting
【解决方案1】:
模式(如果有的话)取决于Format 的子类。无法保证 Format 甚至会使用模式进行格式化。
编辑:我不确定你要做什么,但如果你需要持久化一个 Format 实例,它是可序列化的。
【解决方案2】:
恐怕没有这样的运气!你必须知道你正在处理哪个子类并调用适当的方法:-(
【解决方案3】:
没有已知的直接方法可以从父格式中执行此操作。因为模式实际上存在于格式层次结构的叶子(SimpleDateFormat、MessageFormat、ChoiceFormat、DecimalFormat);其中有 toPattern 方法。既然是约定俗成的,或许可以通过反射得到。
【解决方案4】:
我不确定您对代码的访问权限,但如果您在第一行应用这个小改动,您应该能够以这种方式获得您正在查看的信息:
DecimalFormat f = new DecimalFormat("$0.00");
System.out.println(f.toPattern());