【问题标题】: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());
          

          【讨论】:

            猜你喜欢
            • 2018-12-08
            • 1970-01-01
            • 2022-10-01
            • 1970-01-01
            • 2017-01-02
            • 1970-01-01
            • 1970-01-01
            • 2013-03-23
            • 2011-07-02
            相关资源
            最近更新 更多