Eclipse 3.1提供了新的资源文件访问方式,就是通过osgi.util.NLS类。具体方法是构造一个NLS的子类,如下:
public
class
MyMessages
extends
NLS {
private static final String BUNDLE_NAME = " gr.scharf.MyMessages " ; // $NON-NLS-1$
public static String HELLO_WORLD;
public static String HELLO_SOMETHING;
static {
// initialize resource bundles
NLS.initializeMessages(BUNDLE_NAME, MyMessages. class );
}
}
private static final String BUNDLE_NAME = " gr.scharf.MyMessages " ; // $NON-NLS-1$
public static String HELLO_WORLD;
public static String HELLO_SOMETHING;
static {
// initialize resource bundles
NLS.initializeMessages(BUNDLE_NAME, MyMessages. class );
}
}
资源文件的内容还是和以前一样:
HELLO_WORLD
=
Hello world
!
HELLO_SOMETHING = Hello { 0 } !
HELLO_SOMETHING = Hello { 0 } !
在程序里使用资源的方式如下:
System.out.println(MyMessages.HELLO_WORLD);
System.out.println(MyMessages.bind(MyMessages.HELLO_SOMETHING, " world " ));
System.out.println(MyMessages.bind(MyMessages.HELLO_SOMETHING, " world " ));
这样一来代码简单了不少,但eclipse jdt提供的externalize strings功能生成的类还是以前的方式,而不是生成这样的NLS子类。
小Tip:在.java文件编辑器里输入nls,再自动完成(ctrl+space),这样可以快速生成"//$NON-NLS-N$"标记。
原文地址(访问不到,似乎被删除了)