是否可以只接受类的泛型类型的超类型?
我正在寻找的是这样的:
class <T extends Object> MyClass {
public <TS super T> void myMethod(TS someObjectSuperToTheClass) {
//do stuff
}
}
我真的不再需要它了(一开始它可能并不是那么有用),但我很好奇这是否可能,如果没有,为什么。
想想在这种情况下这意味着什么。
您想断言TS
isT
或它的任何超类。但是由于TS
仅仅是一个引用,实际someObjectSuperToTheClass
参数可以是TS
一个子类。
将两半放在一起,您的代码完全等同于
public void myMethod(Object someObjectSuperToTheClass) { //do stuff }
因为在一起,您TS
可以在类层次结构中尽可能高地走高,并且参数可以随心所欲地走低。
使用这种语法,您试图将参数限制为什么?
No you cannot! Only wildcards can have a super
bound.