ResourceBundle 是 Java 中用于存储和检索国际化资源(如字符串、图像和其他本地化数据)的类。它在 java.util 包中定义,并且是 Java 国际化(i18n)支持的重要组成部分之一。最近看到一部分使用ResourceBundle 的代码,因而产生了一点疑惑。
问题
在使用getString(String key)方法时,我发现,在本地配置对应的资源文件存在但无对应键值对的情况下,其去查找了默认资源文件,成功找到了对应value,好奇之下,去看了下源码,发现其内部有这么一段实现逻辑:
            
            
              java
              
              
            
          
          Object obj = handleGetObject(key);
        if (obj == null) {
            if (parent != null) {
                obj = parent.getObject(key);
            }
        也就是说,在执行getBundle的时候,除了"获得"对应本地配置的文件资源外,其"获得"了默认文件资源,并将该引用存于parent属性。
用法记录
ResourceBundle 的基本使用步骤
- 创建资源文件 :通常为 
.properties文件,包含键值对。 - 加载 ResourceBundle :通过 
ResourceBundle.getBundle()方法加载资源。 - 访问资源 :使用 
getString()等方法获取资源。 
ResourceBundle 的常用方法
- 
getBundle(String baseName):
- 用于加载资源束。
baseName是不包含扩展名的资源文件名。 - 可以指定 
Locale参数来加载特定区域设置的资源。 
 - 用于加载资源束。
 - 
getString(String key):
- 用于获取资源文件中的字符串资源。
 - 如果找不到对应的键,则抛出 
MissingResourceException。 
 - 
getKeys():
- 返回一个 
Enumeration,包含资源束中的所有键。 
 - 返回一个