[Eclipse]使用osgi.util.NLS简化资源文件访问

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);
  }
}

资源文件的内容还是和以前一样:

HELLO_WORLD=Hello world!  
HELLO_SOMETHING=Hello {0}!

在程序里使用资源的方式如下:

System.out.println(MyMessages.HELLO_WORLD);  
System.out.println(MyMessages.bind(MyMessages.HELLO_SOMETHING,"world"));

这样一来代码简单了不少,但eclipse jdt提供的externalize strings功能生成的类还是以前的方式,而不是生成这样的NLS子类。

小Tip:在.java文件编辑器里输入nls,再自动完成(ctrl+space),这样可以快速生成"//$NON-NLS-N$"标记。

参考资料

原文地址(访问不到,似乎被删除了)

搬家前链接:https://www.cnblogs.com/bjzhanghao/archive/2005/12/31/308718.html