Java Generic Extends vs Super

时间:2015-05-04 15:03:59

标签: java generics extends super

我不明白为什么以下代码有效:

class MyMap<T> {
    T value;

    public void set(T value) {
        this.value = value;
    }

    public T get() {
        return value;
    }
}

public class GenTest {
    public static void main(String args[]) {
        MyMap<String> map = new MyMap<String>();   // *
        map.set("dog");
        System.out.println(map.get());
    }
}

但是,如果我将标记的*行更改为:

MyMap<? extends String> map = new MyMap<String>();

然后它不会编译。

如果我有这个:

MyMap<? super String> map = new MyMap<String>();
你能帮帮我吗?提前谢谢!

0 个答案:

没有答案