クラス内に保持されているマップ上で実行できる静的メソッドのクラスがあり、クラスが呼び出されるときにマップを設定したいと考えています。私は私的なコンストラクタを使ってみましたが、呼び出されていません。私のコードの関連する部分は次のとおりです。静的メソッドのクラスのコンストラクタ
public class MyClass
{
private static final String KEYS = "ABC";
private static final String[] DATA = {"AAA", "BBB", "CCC"};
private static HashMap<Character, String> myMap;
private MyClass() {
System.out.println("Running constructor");
populateMyMap();
}
private static void populateMyMap() {
myMap = new HashMap<Character, String>();
for (int i=0; i < KEYS.length; i++) {
myMap.put(KEYS.charAt(i), DATA[i]);
}
}
//various static methods
}
プライベートコンストラクタはここで使用するのに適していますか?その場合、私は間違っていますか?
申し訳ありませんが重複している場合は、私は答えを探してみましたが、何を探したらいいのか分かりません!
public class MyClass
{
static {
//init
}
}
はい、単純に値を初期化するのであれば、これははるかに好ましい方法です。 –