理论上,如果找不到给定Locale的资源,应该使用默认资源啊。
为啥我的程序都使用中文资源呢?????本小程序包含3个源文件:
主类代码:
import java.util.Locale;
import java.util.ResourceBundle;
public class Main { public static void main(String[] args) {
ResourceBundle rb = null;
rb = ResourceBundle.getBundle("MyResource");
System.out.println(rb.getObject("key"));
rb = ResourceBundle.getBundle("MyResource", Locale.FRANCE);
System.out.println(rb.getObject("key")); //这里为什么还输出中文?
}
------------------------------------------------------------------------默认资源类代码:
import java.util.ListResourceBundle;public class MyResource extends ListResourceBundle { @Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{"key", "hello"}
};
}
}
----------------------------------------------------------------------------------------------------------中文资源类代码:import java.util.ListResourceBundle;public class MyResource_zh extends ListResourceBundle { @Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{"key", "你好"}
};
}
为啥我的程序都使用中文资源呢?????本小程序包含3个源文件:
主类代码:
import java.util.Locale;
import java.util.ResourceBundle;
public class Main { public static void main(String[] args) {
ResourceBundle rb = null;
rb = ResourceBundle.getBundle("MyResource");
System.out.println(rb.getObject("key"));
rb = ResourceBundle.getBundle("MyResource", Locale.FRANCE);
System.out.println(rb.getObject("key")); //这里为什么还输出中文?
}
------------------------------------------------------------------------默认资源类代码:
import java.util.ListResourceBundle;public class MyResource extends ListResourceBundle { @Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{"key", "hello"}
};
}
}
----------------------------------------------------------------------------------------------------------中文资源类代码:import java.util.ListResourceBundle;public class MyResource_zh extends ListResourceBundle { @Override
public Object[][] getContents() {
// TODO Auto-generated method stub
return contents;
}
static final Object[][] contents = {
{"key", "你好"}
};
}
解决方案 »
- 搞C++,不懂Java ,求助Java高手指点一二
- 关于TreeSet的问题
- JAVA正则取值的问题
- mysql中怎样批量往表里插入数据?
- Collection接口和List接口问题
- 关于Java程序打包包含外部JAR包的问题
- 怎么样判断一个数组中的元素是否重复呢?
- 500分大放送,快来帮帮小妹妹~~~~都2个星期了!!!
- 我一直是作信息管理系统开发的,请问什么是嵌入式开发,举个例子?如何开发?用于哪类项目?
- 《Thinking in Java》VS《The Java Programming Language》
- Java如何把String类型转换成GregorianCalendar
- 关于 ThreadLocal 的疑问
这个方法是比较特别的,它应用了java的反射机制当你的local是french的时候实际上它试图加载MyResource_fr,如果找不到的话会加载默认的也就是MyResource
我猜你没有写MyResource_fr,而MyResource里面是中文。这样就造成了你说的情况
先找指定的语言,如果没有
再找默认的语言(系统的),如果没有
找默认资源(无后缀的那个)