Интересно, надежно ли использовать такую конструкцию, как:
private static final Map<String, String> engMessages;
private static final Map<String, String> rusMessages;
static {
engMessages = new HashMap<String, String> () {{
put ("msgname", "value");
}};
rusMessages = new HashMap<String, String> () {{
put ("msgname", "значение");
}};
}
private static Map<String, String> msgSource;
static {
msgSource = engMessages;
}
public static String msg (String msgName) {
return msgSource.get (msgName);
}
Есть ли вероятность, что я получу NullPointerException
, потому что msgSource
блок инициализации будет выполнен перед блоком, который инициализирует engMessages
?
(о том, почему я не делаю msgSource
инициализацию в конце верхнего блока init. Просто вопрос вкуса; я сделаю это, если описанная конструкция ненадежна)