日期:2014-05-20  浏览次数:20610 次

关于泛型的问题
代码如下:
Java code

public class Test1<E> {
    public void show(E t) {
        System.out.println(t);
    }
}


public class Test2 {
    private Test1<E> t1;

    public <E> Test1<E> setT(E t) {
        t1 = t;
        return t1;
    }
}



请问高手,这么做Test2为什么是错的?正确的写法是什么样子,望指教

------解决方案--------------------
Java code
class Test2<E>{
    private  Test1<E> t1;

    public <T extends Test1<E>> Test1<E> setT(T t) {
        t1 = t;
        return t1;
    }
}

------解决方案--------------------
private Test1<E> t1;
这里的“E”没有声明。
------解决方案--------------------
t1 = t;t1是Test1类型的,而t是未知类型,未知类型怎么能复制给Test1类呢
public <E> Test1<E> setT(E t)此方法返回的是未知类型<E>,而不经过强制类型转化就返回Test1类,肯定错呀
------解决方案--------------------
探讨

引用:
private Test1<E> t1;
这里的“E”没有声明。


声明E,指的是否就是
Java code
class Test2<E>{