通用扩展类AND实现接口

Seb*_*ann 8 java generics enums interface

这可能听起来像一个奇怪的问题,但如何定义一个必须扩展类AND以实现接口的泛型?我目前拥有以下原型的通用功能:

public static <E extends Enum<E>> List<E> buildEnumList(Class<E> enumClass)
Run Code Online (Sandbox Code Playgroud)

这就像有意的一样.我现在的问题是我想进一步将可传递类限制为枚举并实现特定接口Readable(不是java.lang中的接口).由于泛型使用相同的关键字extends来表明它应该实现一个接口,我没有看到任何方法来获得以下伪行为:

public static <E extends Enum<E> implements Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass)
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 17

您可以&用来表示E还必须实现一个接口:

public static <E extends Enum<E> & Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass) {
Run Code Online (Sandbox Code Playgroud)

  • 它定义了第二个/第n个类型参数. (3认同)
  • @BenSchulz 确实;逗号是我的第一次尝试,但它定义了第二个类型参数。然而,这工作得很好 (2认同)