java 类型通配符

来源:互联网 发布:android 棋牌 源码 编辑:程序博客网 时间:2024/05/29 07:30
public class Generic2<T> {    T foo;    public T getFoo() {        return foo;    }    public void setFoo(T foo) {        this.foo = foo;    }    public static void main(String[] args) {        Generic2<String> ge1 = new Generic2<String>();        Generic2<Integer> ge2 = new Generic2<Integer>();        **ge1=ge2;**    }}直接这样赋值在Java中不被允许的,如何解决呢?可以用 ‘?’号通配符,并且使用extends来限定类型持有者的型态如:     Generic2<?> ge1 = new Generic2<String>();//?默认继承Object        Generic2<?> ge2 = new Generic2<Integer>();        ge1=ge2;或者        Generic2<? extends List> ge1 = new Generic2<ArrayList>();        Generic2<? extends List> ge2 = new Generic2<ArrayList>();        ge1=ge2;
0 0
原创粉丝点击