package scjp.chapter7;import java.util.ArrayList;
import java.util.List;public class Test1 { public static <E extends Number> List<? super E> process(List<E> nums){
List<Number> l=new ArrayList<Number>();
return l;
}
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> input=null;
List<Number> output=null;
output=process(input);
}
}
process方法不是返回E或者E的父类吗,为什么不能赋给output呢?

解决方案 »

  1.   

    不是这个问题,这两个方法都在这个类里不用写Test1撒-.-
      

  2.   

    List<Number> l=new ArrayList<Number>();
    编译的时候Number会被抹掉
    http://blog.csdn.net/deepnighttwo/archive/2007/01/19/1487987.aspx
    看看这个
      

  3.   

    List<Number> 不是 List<Integer>的超类
    不能把List<Integer>的引用指向List<Number>变量