如何在不运行的情况下检查从ResourceBundle调用的字符串是否存在?

时间:2015-03-01 02:39:48

标签: java internationalization resourcebundle

我正在使用ResourceBundle从MessagesBundle.properties文件中获取字符串,但我无法找到一种方法来检查以确保所有字符串都存在(并且没有输入错误)而不实际运行程序并查看例外。有没有一个工具让我检查一下?

1 个答案:

答案 0 :(得分:1)

您应该使用一个或多个类,其中属性文件的条目使用公共静态属性进行映射。 像这样,在编译时检查所有内容,避免以后出现随机/意外行为/错误。

public class Messages {
    public static final String cancel = "cancel";
}

...

Locale locale = new Locale("en", "US");
ResourceBundle labels = ResourceBundle.getBundle("MyBundle", locale);
System.out.println(labels.getString(Messages.cancel));

...

出于测试目的,您可以对Messages类的属性进行迭代(通过反射),并尝试从包中加载消息。

最后:

  • 您可以识别已使用/未使用的消息
  • 您可以检查每个提供的捆绑包中的每条消息