【发布时间】:2013-08-01 09:37:37
【问题描述】:
我目前正在为使用 ResourceBundle 的应用程序制作资源。问题是,使用当前代码来调度资源,我每次需要时都需要创建资源包的实例,我猜这不是一个好主意,因为我最终会一次又一次地加载资源.
第二种解决方案是将捆绑包分成许多,但我最终会得到捆绑包只有 2-3 个字符串,就像 15 个捆绑包。
我的问题是: 有没有办法在一个静态类中简单地加载所有资源并从那里访问它们。
我编写的这段代码似乎对我有用,但我怀疑它的质量。
public class StaticBundle
{
private final static ResourceBundle resBundle =
ResourceBundle.getBundle("com.resources");
public final static String STRING_A = resBundle.getString("KEY_A");
public final static String STRING_B = resBundle.getString("KEY_B");
public final static String STRING_C = resBundle.getString("KEY_C");
}
有了这个,我可以调用StaticBundle.STRING_A 并在项目中的任何位置获取值,但是由于捆绑包是与类本身同时初始化的......程序很可能没有时间从首选项中加载正确的本地。
有没有好的方法来做这个或任何其他可能的解决方案?
谢谢
【问题讨论】:
-
如果您只使用默认语言环境来加载您的密钥,您所拥有的一切都很好。但不要太担心性能:
ResourceBundle.getBundle()使用缓存,并且不会在每次调用时重新加载资源。
标签: java static resources resourcebundle