次の例EnumMap<K,V>
のように、インスタンスを構築する習慣があります。EnumMapExample.java
package test;
import java.util.EnumMap;
public class EnumMapExample {
enum TestEnum {SOME_VALUE, SOME_OTHER_VALUE}
private final EnumMap<TestEnum, String> myEnumMap = new EnumMap<TestEnum, String>(TestEnum.class) {
{
// How is this construct called?
put(TestEnum.SOME_VALUE, "someValue");
put(TestEnum.SOME_OTHER_VALUE, "someOtherValue");
}
};
public void printMyEnumMap() {
for (final TestEnum key : myEnumMap.keySet()) {
final String value = myEnumMap.get(key);
System.out.println("myEnumMap key: " + key + " has value " + value);
}
}
public static void main(final String[] args) {
new EnumMapExample().printMyEnumMap();
}
}
簡単な答えがある質問の可能性がありますがprivate final EnumMap<TestEnum, String> myEnumMap
、2つの(不自然な)列挙型で満たすこの方法がどのように呼び出され、どのように機能するかをGoogleで見つけることはできませんか?
質問の絞り込み: だから、セミコロンの前のnew EnumMap<K,V>(SomeEnum.class){{ /* initialization code */ }};
二重中括弧に注意してください。その二重中括弧は何ですか?{{ }}
;