0

是否可以只接受类的泛型类型的超类型?

我正在寻找的是这样的:

class <T extends Object> MyClass {

    public <TS super T> void myMethod(TS someObjectSuperToTheClass) {
         //do stuff
    }

}

我真的不再需要它了(一开始它可能并不是那么有用),但我很好奇这是否可能,如果没有,为什么。

4

2 回答 2

6

想想在这种情况下这意味着什么。

您想断言TSisT或它的任何超类。但是由于TS仅仅是一个引用,实际someObjectSuperToTheClass参数可以是TS一个子类。

将两半放在一起,您的代码完全等同于

public void myMethod(Object someObjectSuperToTheClass) { //do stuff }

因为在一起,您TS可以在类层次结构中尽可能高地走高,并且参数可以随心所欲地走低。

使用这种语法,您试图将参数限制为什么?

于 2009-11-16T16:12:10.587 回答
3

No you cannot! Only wildcards can have a super bound.

于 2009-11-16T16:01:44.990 回答