我们有构建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 个(人为的)枚举类型的方法是如何调用的以及它是如何工作的?
问题细化:所以我叫注意分号前的new EnumMap<K,V>(SomeEnum.class){{ /* initialization code */ }};
双花括号。那个双括号是什么东西?{{ }}
;