检查 Local getDefault 方法的行为更改

此规则会标记 java.util.Locale getDefault() 设置。

标记此方法的原因是它存在相关联的行为更改。 根据 Java 7 中的 Java SE 7 和 JDK 7 兼容性 文档,用户现在可以访问显示语言环境 (例如,字符串的可视表示) 或格式语言环境 (例如,字符串的实际格式)。 为帮助实现此目标, Java 7 添加了新方法: getDefault(Locale.Catgory cat) 其中 Locale.Category 是新枚举 DISPLAY FORMAT 选项。 使用此新方法,用户可以获取感兴趣的特定语言环境。

此规则标记的旧方法, getDefault() 已更新为等同于调用 getDefault(Locale.DISPLAY) . 在 Java 7 之前, getDefault() 用于返回等价于 getDefault(Locale.FORMAT)

显示语言环境确定数据在用户界面(例如窗口或对话框)上的显示方式。例如,可以采用与主机系统不同的语言来显示数据。

格式语言环境确定数据的格式化方式。例如,使用美国格式语言环境,日期 October 4, 2011(2011 年 10 月 4 日)会显示为 10/04/2011,而使用英国格式语言环境时,同一日期会显示为 04/10/2011。

用户需要评估代码,并确定代码是否受行为更改的影响,继续进行任何适当的测试,然后对代码进行任何必要的更改。

根据文档,用户可以通过设置属性来保留 JDK 6 的旧行为。 sun.locale.formatasdefault 为 true 或通过更改代码以使用新方法 getDefault(Locale.Category cat) . 在这种情况下, cat 参数将为 Locale.Category.FORMAT

有关更多信息,请参阅 Java 7 API: