使用实现接口的枚举作为参数作为 EnumMap 中的键
Use enum that implements interface as parameter as key in EnumMap
我想要一个扩展 BaseClass 的子 类 家族,后者又定义了一个 EnumMap。根据 IDE 我插入这段代码。它告诉我 Constructor
EnumMap<B, Integer>()
未定义,相应的 B 不在指定范围内。
interface A {}
enum B implements A {hello, world}
abstract class BaseClass {
protected EnumMap<? extends A, Integer> baseMap;
}
class ChildClass extends BaseClass {
public ChildClass () {
baseMap = new EnumMap<B,Integer>();
}
}
例如倒数第三行给我带来了麻烦。我看不出有什么问题。
EnumMap
取 the constructor 中的 enum
:
baseMap = new EnumMap<B,Integer>(B.class);
而且我们在 post Java 7 world
baseMap = new EnumMap<>(B.class);
我建议在声明中使用 Map
- 程序到 interface
:
protected Map<? extends A, Integer> baseMap;
我想要一个扩展 BaseClass 的子 类 家族,后者又定义了一个 EnumMap。根据 IDE 我插入这段代码。它告诉我 Constructor
EnumMap<B, Integer>()
未定义,相应的 B 不在指定范围内。
interface A {}
enum B implements A {hello, world}
abstract class BaseClass {
protected EnumMap<? extends A, Integer> baseMap;
}
class ChildClass extends BaseClass {
public ChildClass () {
baseMap = new EnumMap<B,Integer>();
}
}
例如倒数第三行给我带来了麻烦。我看不出有什么问题。
EnumMap
取 the constructor 中的 enum
:
baseMap = new EnumMap<B,Integer>(B.class);
而且我们在 post Java 7 world
baseMap = new EnumMap<>(B.class);
我建议在声明中使用 Map
- 程序到 interface
:
protected Map<? extends A, Integer> baseMap;