以下に部分的に示されているクラスには、mainメソッドが含まれています。コードを実行すると、NullPointerException
(NPE)が表示され、エラーメッセージが表示されます-「メインクラスが見つかりませんでした。プログラムは終了します」。私の理解では、NPEを取得した場合、それはコードが実行されていることを意味します。つまり、JREがmain
実行を開始するメソッドを見つけたのに、なぜエラーメッセージが表示されるのですか?
これはコンソール出力です
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at com.MyWorldDemo.getValue(MyWorldDemo.java:57)
at com.MyWorldDemo.<clinit>(MyWorldDemo.java:23)
Exception in thread "main"
一言で言えば:
- ユーザー名はプロパティファイルに保存されます。
- プロパティファイルは次のようなものですusername=superman .... etc
ここにいくつかのコード例があります
class MyClass {
private final static String username = getData("username"); // ERROR HERE
private static Properties prop;
// more variables
static {
prop = new Properties();
try {
FileInputStream fis = new FileInputStream("MyDB.properties");
prop.load(fis);
} catch (IOException ex) {
ex.printStackTrace();
}
}
// this method will assign a value to my final variable username.
public static String getData(String props) {
String property = prop.getProperty(props);// ERROR HERE !!!
return property;
}
}