假设我有一些枚举:
enum Resource { FILE, URL, STREAM }
假设我有一些 Reader
接口(interface):
interface Reader<R extends Resource>
是否可以使用枚举成员创建它的不同实现? 像这样:
class FileReader implements Reader<Resource.FILE>
我的 ide 用红色突出显示此文本(这并不奇怪)。
最佳答案
枚举成员是enum
类型的实例,而不是子类。此外,枚举不能被子类化。因此,您无法编译代码。
我建议你这样写:
interface Reader {
Resource getResource()
....
}
class FileReader implements Reader {
@Override
public Resource getResource() {return Resource.FILE;}
...
}
关于java - 使用枚举值作为泛型参数实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228619/