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,包含资源束中的所有键。
相关推荐
mqiqe23 分钟前
AgentScope Java 2.0 技能仓库(Skill Repository)完全实战指南
java·开发语言·elasticsearch
Mr数据杨44 分钟前
【Codex】用学生支持周报模块跟踪个性化支持进展
android·java·javascript·django·codex·项目开发
JavaPub-rodert1 小时前
Apache Jena 详解:Java 开发者如何真正搭起一套知识图谱与语义服务
java·apache·知识图谱
lhldsg1 小时前
线上住宿预约系统开发实战:从需求分析到接口设计
java·大数据·小程序·需求分析
剑指offer.1 小时前
Linux多任务-线程篇
java·jvm·算法
2601_962063971 小时前
Spring Boot拦截器(Interceptor)详解
java·spring boot·后端
这是程序猿1 小时前
深入剖析Java HashMap:底层原理、数据结构与核心机制全解析
java·开发语言·数据结构
不才不才不不才1 小时前
Spring 源码系列(25): @EnableTransactionManagement 与 TransactionInterceptor
java·数据库·spring
隔窗听雨眠2 小时前
CI/CD测试数据清理完全指南:从污染根因到三层清理覆盖的完整方案
java·数据库·ci/cd
Query*2 小时前
Agent 开发之项目 AI 能力自我进化:通过浏览器自动化与数据采集实现持续学习
java·人工智能·ai·自动化