首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态ResourceBundle

静态ResourceBundle
EN

Stack Overflow用户
提问于 2013-07-31 17:57:18
回答 1查看 6.2K关注 0票数 3

我目前正在为一个使用ResourceBundle的应用程序制作资源。问题是,使用当前的代码来分派资源,每当我需要资源包时,我都需要创建一个资源包的实例,我可以猜这不是个好主意,因为我最终会一次又一次地加载资源。

第二种解决方案是将包分成多个,但我最终得到的包只有2-3个字符串,大约有15个包。

,我的问题是:是否有一种方法可以简单地将所有资源加载到一个静态类中并从那里访问它们。

我做了这个小代码,似乎对我有用,但我怀疑它的质量。

代码语言:javascript
复制
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并在项目的任何地方获取值,但是由于包是在与类本身同时初始化的.程序极有可能没有时间从首选项加载适当的本地信息。

有没有一个好的方法来做这个或任何其他可能的解决方案?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-07-31 18:11:11

您可以创建一个单例类:

代码语言:javascript
复制
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的字符串):

代码语言:javascript
复制
MyResourceBunde.getInstance().get("KEY_A");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17977539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档