Ana*_*001 2 java generics enums
我想用枚举参数化一个类,然后在类的构造函数中创建一个具有枚举中元素数量大小的数组.
我创建了这样的类:
public class LogLine <T extends Enum<T>> {
Run Code Online (Sandbox Code Playgroud)
然后在构造函数中我尝试写这个:
public LogLine(){
numberOfElementsInEnum = T.values().length;
//then I would create the Array based on the numberOfElementsInEnum variable
Run Code Online (Sandbox Code Playgroud)
它不起作用.编译器没有看到values方法.我尝试用T扩展String而不是Enum.然后可以访问所有静态方法.这是什么问题?
您必须声明一个接受以下内容的构造函数Class:
public LogLine(Class<T> c) {
numberOfElementsInEnum = c.getEnumConstants().length;
}
Run Code Online (Sandbox Code Playgroud)
另请参见:https://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |