【发布时间】:2017-01-22 16:30:17
【问题描述】:
类枚举在 API 中定义为:
public abstract class Enum<E extends Enum<E>>
我有
enum Cards { Trefs(2.3), Clubs(1.0);
public double d;
private Cards(double val) {
this.d = val;
}
}
问题一:
Enum e = Cards.Clubs; //compiles, but with warning: "References to generic type Enum<E> should be parameterized"
Enum<???what-shall-I-write-here??> e1 = Cards.Clubs; //Question 1
问题 2:
编译:
Map<Enum, Integer> map0 = new HashMap<Enum, Integer>();
Map<Enum, Integer> map1 = new HashMap<Enum, Integer>();
map1.put(Cards.Clubs, new Integer(54));
Map<Enum, Integer> map2 = new EnumMap<>(map1);
但是我可以在 RHS(新 EnumMap)的尖括号中添加任何内容,就像我为上面的 map1 所做的那样吗?
Map<Enum, Integer> map2 = new EnumMap<???what-can-I-write-here??>(map1);
附:我研究了 SO,但没有发现 直接 回答上述问题。 我的研究:
【问题讨论】:
-
尝试使用 IDE,它几乎可以满足所有需求。