0%

7.7.5 使用类文件代替资源文件

7.7.5 使用类文件代替资源文件

除使用属性文件作为资源文件外,Java也允许使用类文件代替资源文件,即将所有的key-value对存入class文件,而不是属性文件。
使用类文件来代替资源文件必须满足如下条件。
该类的类名必须是baseName_language_country,这与属性文件的命名相似。
该类必须继承ListResourceBundle,并重写getContents()方法,该方法返回Object数组,该数组的每一项都是key-value对.

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.*;

public class myMess_zh_CN extends ListResourceBundle {
// 定义资源
private final Object myData[][] = { { "msg", "{0},你好!今天的日期是{1}" } };

// 重写方法getContents()
public Object[][] getContents() {
// 该方法返回资源的key-value对
return myData;
}
}

如果系统同时存在资源文件、类文件,系统将以类文件为主,而不会调用资源文件。对于简体中文的Locale, ResourceBundle搜索资源文件的顺序是:

  1. baseName_zh_CN.class
  2. baseName_zh_CN.prroperties
  3. baseName_zh.class
  4. baseName_zh.properties
  5. baseName.class
  6. baseName.properties

系统按上面的顺序搜索资源文件,如果前面的文件不存在,才会使用下一个文件。如果一直找不到对应的文件,系统将抛出异常

原文链接: 7.7.5 使用类文件代替资源文件