我目前正在为一个使用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并在项目的任何地方获取值,但是由于包是在与类本身同时初始化的.程序极有可能没有时间从首选项加载适当的本地信息。
有没有一个好的方法来做这个或任何其他可能的解决方案?
谢谢
发布于 2013-07-31 18:11:11
您可以创建一个单例类:
public class MyResouceBundle extends ResourceBundle {
private static MyResourceBundle instance = new MyResouceBundle();
// private constructor, no one can instantiate this class, only itself
private MyResourceBundle() {
}
public ResourceBundle getInstance() {
return instance;
}
}然后,每个人都将访问类的同一个实例(例如,获取用于KEY_A的字符串):
MyResourceBunde.getInstance().get("KEY_A");https://stackoverflow.com/questions/17977539
复制相似问题