rat*_*osk 1 java generics enums
我如何找出我的枚举在这个例子中有多少值:
public class Analyser<C extends Enum<C>>{
private long[] dist;
public Analyser() {
super();
dist = new long [C.getEnumConstants().length];
}
}
Run Code Online (Sandbox Code Playgroud)
最后一行不起作用.
你需要传入枚举的类文字:
public Analyser(Class<C> enumType) {
super();
dist = new long [enumType.getEnumConstants().length];
}
...
Analyser<MyEnum> analyser = new Analyser(MyEnum.class);
Run Code Online (Sandbox Code Playgroud)
这是因为C由于类型擦除在运行时没有意义.
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |