Java Locale对象作用域是线程还是应用程序?

标签 java multithreading locale

我正在编写一个多线程Java应用程序,其中每个用户请求都会创建一个新线程,该线程应根据用户首选项使用不同的区域设置。这不是一个 Web 应用程序,因此 session 的概念在这里不适用。

是否有任何方法可以在线程范围内设置默认区域设置( Activity 区域设置)?我一直在文档中查找它,但它没有阐明默认区域设置是否适用于线程、类加载器、进程或整个 JVM。

谢谢。问候。

最佳答案

来自 Locale.getDefault 的 Javadoc :

Gets the current value of the default locale for this instance of the Java Virtual Machine.

默认区域设置绝对是 JVM 范围的变量,不应该用于尝试跟踪用户的区域设置。你应该看看Java Internationalization讨论如何使用这些类。

就您而言,您似乎可以使用 ThreadLocal<Locale> ,参见ThreadLocal .

关于Java Locale对象作用域是线程还是应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011104/

相关文章:

java - ContentProvider.createUri 无法解析方法?

android - 如何在游标中使用线程?

c# - 如果您调用 EventWaitHandle.Set() X 次,如果 X 个线程尚未启动,它会向 X 个线程发出信号吗?

shell - tr 的一致实现?

apache-flex - Flex : Wrapper for ResourceManager. getInstance().getString 未收到 localeChain 更新通知

django - 在 Django i18n 中,语言环境路径不起作用

java - 我们如何使用 FirefoxProfile 保留浏览器的旧 session ?

java - 在 Java 8 流中按属性排序

java - getActionBar().setDisplayHomeAsUpEnabled(true) 抛出 NullPointerException

java - 我如何将我的方法链接到 UI 线程 - .setBackgroundColor();