【问题标题】:DateFormat: to create a new instance or to call a subclass getInstance() method?DateFormat:创建一个新实例还是调用一个子类的getInstance()方法?
【发布时间】:2014-10-24 05:37:59
【问题描述】:

使用DateFormat 子类的正确方法是什么?显式实例化它还是使用其定义类的静态方法之一?

此外,在 SimpleDateFormat 文档中,关于同步,它指出:

同步

日期格式不同步。推荐 为每个线程创建单独的格式实例。如果多个 线程同时访问一个格式,它必须是同步的 外部。

那么,单线程应用程序的最佳方法是什么?在多线程的?每个线程都有一个新实例,还是访问同步的公共实例?
在后者中,我想在需要时共享模式并创建新实例会更好,但我希望得到您的建议。

【问题讨论】:

  • 当然这取决于用例是什么。
  • @OliCharlesworth 当我需要一个方法中的单个实例或者当我想跨方法共享一个模式(所以是一个日期格式化程序)时。从 javadocs 中,我无法了解使用工厂方法是否总是更好。这让我很困惑。
  • 你不能显式实例化它;这是一个抽象类。

标签: java multithreading synchronization date-format


【解决方案1】:

根据经验:

  • 单线程:你可以重用你的 DateFormat 实例

  • 多线程环境:每次使用时创建一个新实例

【讨论】:

  • 好。所以你不建议在任何情况下使用 DateFormat 子类 getInstance() 方法?
  • 如果你想使用系统默认值,可以。如果要显式格式声明,请使用构造函数
猜你喜欢
  • 2018-06-06
  • 2018-07-26
  • 2021-11-25
  • 2017-10-06
  • 2011-02-05
  • 2013-12-28
  • 1970-01-01
  • 2016-08-25
  • 2020-04-20
相关资源
最近更新 更多