我如何知道我的枚举在此示例中有多少个值:
public class Analyser<C extends Enum<C>>{
private long[] dist;
public Analyser() {
super();
dist = new long [C.getEnumConstants().length];
}
}
最后一行不起作用。
您需要传入枚举的类文字:
public Analyser(Class<C> enumType) {
super();
dist = new long [enumType.getEnumConstants().length];
}
...
Analyser<MyEnum> analyser = new Analyser(MyEnum.class);
这是因为C
由于在运行时没有意义类型擦除 http://docs.oracle.com/javase/tutorial/java/generics/erasure.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)