我需要創建一個消息類,它可以檢索消息的數據並將其打印出來問題是我必須在消息類中提供靜態字段值,如(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」如果在消息屬性文件中我已經有了消息的值... –