メッセージのデータを取得して出力できるメッセージ クラスを作成する必要があります。問題は、メッセージ クラスで (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! の拡張機能を作成できませんでした。