ResourceBundle使用有感

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 的基本使用步骤
  1. 创建资源文件 :通常为 .properties 文件,包含键值对。
  2. 加载 ResourceBundle :通过 ResourceBundle.getBundle() 方法加载资源。
  3. 访问资源 :使用 getString() 等方法获取资源。
ResourceBundle 的常用方法
  1. getBundle(String baseName)

    • 用于加载资源束。baseName 是不包含扩展名的资源文件名。
    • 可以指定 Locale 参数来加载特定区域设置的资源。
  2. getString(String key)

    • 用于获取资源文件中的字符串资源。
    • 如果找不到对应的键,则抛出 MissingResourceException
  3. getKeys()

    • 返回一个 Enumeration,包含资源束中的所有键。
相关推荐
晴子呀6 分钟前
Spring底层原理大致脉络
java·后端·spring
只吹45°风13 分钟前
Java-ArrayList和LinkedList区别
java·arraylist·linkedlist·区别
阿华的代码王国20 分钟前
【JavaEE】多线程编程引入——认识Thread类
java·开发语言·数据结构·mysql·java-ee
黑蛋同志20 分钟前
array和linked list的区别
java
andrew_121926 分钟前
腾讯 IEG 游戏前沿技术 一面复盘
java·redis·sql·面试
寻求出路的程序媛34 分钟前
JVM —— 类加载器的分类,双亲委派机制
java·jvm·面试
这孩子叫逆36 分钟前
35. MyBatis中的缓存失效机制是如何工作的?
java·spring·mybatis
骆晨学长36 分钟前
基于SpringBoot的校园失物招领系统
java·spring boot
汇匠源37 分钟前
零工市场小程序:保障灵活就业
java·小程序·零工市场
计算机编程-吉哥39 分钟前
计算机毕业设计 二手图书交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
java·spring boot·毕业设计·毕业论文·计算机毕业设计选题·计算机毕业设计开题报告·二手图书交易系统