Discuss / Java / 使用super限定T类型:class Pair<T super Integer> { ... }这种定义是不行的,无法编译通过的

使用super限定T类型:class Pair<T super Integer> { ... }这种定义是不行的,无法编译通过的

Topic source

例如,这样声明是合法的:

class A<T extends Number>

这样声明是非法的:

class A<T super Integer>

如:

class Pair<T super Integer>{ // compile error!!!
    T first;
    T last;

    Pair(T first,T last){
        this.first = first;
        this.last = last;
    }

    public T getFirst() {
        return first;
    }

    public T getLast() {
        return last;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public void setLast(T last) {
        this.last = last;
    }
}

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你说得对,修正了一下,super不能用在class定义处,只能用在方法参数


  • 1

Reply