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,包含资源束中的所有键。
相关推荐
brave_zhao13 小时前
launch4j亲测打包java的jar转为exe执行文件
java
利刃大大13 小时前
【RabbitMQ】SpringBoot整合RabbitMQ:工作队列 && 发布/订阅模式 && 路由模式 && 通配符模式
java·spring boot·消息队列·rabbitmq·java-rabbitmq
lkbhua莱克瓦2413 小时前
进阶-存储对象1-视图
java·数据库·sql·mysql·视图
yangminlei13 小时前
Spring Boot 自动配置原理与自定义 Starter 开发实战
java·数据库·spring boot
悟空码字13 小时前
10分钟搞定!SpringBoot集成腾讯云短信全攻略,从配置到发送一气呵成
java·spring boot·后端
爱编程的小吴13 小时前
【力扣练习题】151. 反转字符串中的单词
java·算法·leetcode
未来龙皇小蓝13 小时前
Spring注入Bean流程及其理解
java·spring boot·后端·spring·代理模式
知秋正在99613 小时前
Java实现Html保存为.mhtml文件
java·开发语言·html
码头整点薯条13 小时前
大数据量查询处理方案
java
菜鸟233号13 小时前
力扣474 一和零 java实现
java·数据结构·算法·leetcode·动态规划