gpt4 book ai didi

Java 8 Locale.getDefault() 返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:30 26 4
gpt4 key购买 nike

我们有一个案例,其中运行使用 1.8.0_092 的 Java 8 应用程序的 PC 从 Locale.getDefault() 返回 null。虽然处理这个很简单,但我更担心返回 null,因为 documentation对于该方法并不表示 null 是可能的。我们没有从 java 命令行设置语言环境,也没有在任何地方调用 setDefault()

此安装中 Locale.getDefault() 会返回 null 可能有什么问题?我没有正确阅读 Java 文档吗?

最佳答案

查看 JDK 1.8.0_092 的源代码,我看到 Locale.getDefault() 返回的值来场defaultLocale (Locale.java:2022)。

private volatile static Locale defaultLocale = initDefault();

initDefault()基于变量 LocaleKey 构建一个 key ( language ) , region , script , countryvariant , 然后搜索 Cache对象 LocaleObjectCache<LocaleKey, Locale> .

好吧,我不想用其他细节打扰你,但本质上,这段代码是在 map 中查找现有的 LocaleKey。对于给定的环境,这样的 Locale 可能不存在。

关于Java 8 Locale.getDefault() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com