泛型扩展类 AND 实现接口

2022-09-04 07:39:48

这可能听起来像一个奇怪的问题,但是如何定义一个必须扩展类并实现接口的泛型呢?我目前有一个具有以下原型的泛型函数:

public static <E extends Enum<E>> List<E> buildEnumList(Class<E> enumClass)

这与意图一样工作。我现在的问题是,我想进一步将可传递的类限制为那些枚举并实现特定接口的类(而不是java.lang中的接口)。由于泛型使用相同的关键字来指示它应该实现接口,因此我看不到任何方法可以获得以下伪行为:Readableextends

public static <E extends Enum<E> implements Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass)

答案 1

您可以使用 来指示还必须实现接口:&E

public static <E extends Enum<E> & Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass) {

答案 2