当前位置: 首页 > 面试题库 >

解释枚举声明中使用的泛型

段干宏硕
2023-03-14
问题内容

有人可以解释一下这是什么意思吗?

Enum<T extends Enum<T>>

这似乎是一个循环定义,至少可以说让我感到困惑。


问题答案:

Java Generics
FAQ中
有很好的解释。

从末尾开始:

概括起来,声明Enum<E> extends Enum<E>>可以解密为:Enum是仅可为其子类型实例化的泛型类型,并且这些子类型将继承一些有用的方法,其中一些方法具有子类型特定的参数(否则取决于子类型)。

(尽管我确实很同情-递归的泛型声明很痛苦。但是,我的协议缓冲端口到C#的情况更糟:它需要两个声明,每个声明分别引用自己
彼此。…我还没有找到一种简化它们的方法。 )



 类似资料:
  • 问题内容: 我想将此示例C#代码转换为Java代码: 因为我想将此常量类更改为枚举 问题答案: 简而言之-您可以为枚举定义任意数量的参数,只要您提供构造函数参数(并将值设置为相应的字段) 正如Scott所指出的那样- 官方的枚举文档为您提供了答案。始终从语言功能和结构的官方文档开始。 更新:对于字符串,唯一的区别是您的构造函数参数为,并且您声明了带有

  • 问题内容: 在Swift中应该如何声明和使用位字段? 像这样声明一个枚举确实可行,但是尝试对2个值进行或运算将无法编译: 我研究了Swift如何导入Foundation枚举类型,它是通过定义符合协议的a 来实现的: 而协议是: 但是,没有关于该协议的文档,我无法自己弄清楚如何实现它。此外,还不清楚这是实现位字段的官方Swift方法,还是这仅仅是Objective- C桥如何表示它们的方式。 问题答

  • 我有一个简单的枚举类,我想在其中有一个名为name的字段。 不幸的是,这在静态编程语言中似乎不起作用。编译失败,消息: 错误:(9,5)静态编程语言:冲突声明:枚举条目名称,公共最终val名称:字符串 同样的Enum类作为Java代码工作正常。如何用静态编程语言解决这个问题?

  • 本文向大家介绍详解Java中的 枚举与泛型,包括了详解Java中的 枚举与泛型的使用技巧和注意事项,需要的朋友参考一下 详解Java中的 枚举与泛型 一:首先从枚举开始说起 枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:    显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中En

  • 本文向大家介绍Java中枚举的使用详解,包括了Java中枚举的使用详解的使用技巧和注意事项,需要的朋友参考一下 枚举简介:  为什么要用枚举:     枚举是Java1.5出来之后新增的类型,它可以用来定义一组取值范围固定的的变量。     在枚举没有出来之前,要定义这样的变量,往往是通过定义一个接口,将不同的变量     使用不同的整数赋值。但是这样的却有着很明显的缺点:         1.不

  • 问题内容: 这件事让我困扰了一阵子。我之前曾问过一些问题,但措辞可能很拙劣,而且例子太抽象了。所以目前尚不清楚我实际上在问什么。我会再尝试。并且请不要下结论。我希望这个问题根本不容易回答! 为什么我不能在Java中使用带有泛型类型参数的枚举? 问题不在于语法上为什么不可能做到这一点。我知道这只是不受支持。问题是:为什么JSR人员会“忘记”或“忽略”这个非常有用的功能?我无法想象与编译器相关的原因,