我需要创建一个消息类,它可以检索消息的数据并将其打印出来问题是我必须在消息类中提供静态字段值,如(public static String exc01 =“testErr “;)如果我删除等于"testErr"
;我得到一个错误;错误类消息的创建方式
Exception in thread "main" java.lang.NullPointerException
at java.util.PropertyResourceBundle.handleGetObject(Unknown Source)
at java.util.ResourceBundle.getObject(Unknown Source)
at java.util.ResourceBundle.getString(Unknown Source)
at test1.Messages.getString(Messages.java:19)
at test1.TestMessageClass.main(TestMessageClass.java:8)
1.为什么我应该提供一流的信息价值的静态字符串exc01如果消息属性文件已经包含了错误的价值?
2.做这一切消息的逻辑有更好还是更好?
对于我已创建消息类别如下
package msg;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Messages {
private static final String BUNDLE_NAME = "test1.messages";
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
public static String exc01 ="testErr";
public static String exc02;
private Messages() {
}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
我有消息文件被称为messages.properties并包含以下消息
exc01=Failed to create the extension for {0}
exc02=Failed to create the extension
我已创建相同的包下简单的测试程序
public class TestMessageClass {
public static void main(String[] args) {
System.out.println(Messages.getString("exc01"));
System.out.println(Messages.getString(Messages.exc01));
}
}
无法为{0}创建扩展名 !testErr!
究竟是什么问题?你想知道NullPointerException的原因吗? –
不,为什么我应该把相等的“testErr”如果在消息属性文件中我已经有了消息的值... –