java - Java使用Enum Generic的values方法
问题描述
我想用枚举参数化一个类,然后在类的构造函数中创建一个数组,其大小与枚举中元素的数量相同。
我创建了这样的类:
public class LogLine <T extends Enum<T>> {
然后在构造函数中我尝试写这个:
public LogLine(){
numberOfElementsInEnum = T.values().length;
//then I would create the Array based on the numberOfElementsInEnum variable
它不起作用。编译器看不到 values 方法。我尝试使用 T 扩展字符串而不是枚举。然后可以访问所有静态方法。这里有什么问题?
解决方案
您必须声明一个接受的构造函数Class
:
public LogLine(Class<T> c) {
numberOfElementsInEnum = c.getEnumConstants().length;
}
另请参阅:https ://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html
推荐阅读
- html - 如何使用引导程序制作固定网格布局?
- apache-kafka - 尝试使用融合在 Kafka 中创建主题正则表达式
- outlook - Outlook 电子邮件正文中的 MailTo 链接未生成正确的邮件
- angular - 使用 @ngtools/webpack 的 Angular 延迟加载在 webpack 中不起作用
- c++ - 进程以状态 -1073740940 终止
- sikuli - Sikuli - 脚本中的配置 1920x1080
- apache-kafka - Kafka Consumer Deserializer 是否必须匹配 Producer Serializer?
- javascript - 如何将函数从类组件切换到函数组件
- c# - 带有 MultipartFormDataContent 的 Blazor WASM .net HttpClient 不起作用
- get - Internet Explorer 11 重定向在 GET 请求中不起作用