全局变量如何在Java中的所有类之间共享要使用的语言环境?
我决定我的软件需要国际化,所以我让其中一个类提示用户使用哪种语言环境。在其他7个类中,我添加了一个参数来接收这些信息。现在,不知怎么的,这感觉不对劲。这似乎使事情复杂化了
更自然的做法是将所选语言环境设置为“全局”变量,而不是向所有其他7个类添加一个参数来获取这些信息。(你同意吗?)
所以我看了一下建议:定义一个带有所需变量的公共类作为它的静态成员(for example here)
然而,在本例中,所有类之间共享的值独立于用户输入。我不知道如何共享一个尚未设置的变量。有没有人愿意为我在这上面说几句话
# 1 楼答案
如果它是一个web应用程序,那么可以将区域设置放入HTTP会话中
如果您使用的是JSF或Portlet,那么您已经内置了语言环境支持
# 2 楼答案
假设您想创建一个GlobalSettings类。您可以执行以下操作
然后,从任何地方,你都可以调用GlobalSettings。getLocale()。例如,您可以更复杂一些,拥有一个带有私有字段区域设置的GlobalSettings实例,然后您可以轻松地模拟或替换单元测试