0

我想要一个扩展 BaseClass 的子类家族,它又定义了一个 EnumMap。根据我插入此代码的 IDE。它告诉我构造函数

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>();
    }
}

例如,倒数第三行给我带来了麻烦。我看不出有什么问题。

4

1 回答 1

3

EnumMap构造函数enum中接受:

baseMap = new EnumMap<B,Integer>(B.class);

当我们处于后 Java 7 世界中时

baseMap = new EnumMap<>(B.class);

我建议Map在声明中使用 a - 程序到interface

protected Map<? extends A, Integer> baseMap;
于 2018-04-02T12:31:25.550 回答