为什么Java不允许以下通用返回类型:泛型不适合返回类型工作
public <T extends Enum<T> & MyInterface> Class<T> getEnum() {
return MyEnum.class;
}
虽然以下不工作:
public <T extends Enum<T> & MyInterface> Class<T> getEnum(Class<T> t) {
return t;
}
getEnum(MyEnum.class);
MyEnum
是enumaration实现界面MyInterface
。
为什么我不允许返回MyEnum.class
?
编辑:
我需要这个,因为功能getEnum()
是一个接口。它可以被定义如下:
@Override
public Class<MyEnum> getEnum() {
return MyEnum.class;
}
那么是什么然后将接口方法的返回类型为允许类,既是一个枚举,并实现MyInterface
的任何Class
对象?
嗯,是的,这是有道理的,我该怎么去说我希望函数返回一个对象的'Class',它既是枚举又是枚举并实现了'MyInterface'。 (我会更新我的问题,以反映我为什么要这样做) – Thirler 2010-06-28 09:19:47