List<? extends Number> b定义了这个你编译很难通过,这个就是不确定的返型,你无法添加指定对象类型进去咯,如果你非要想这样,那么可以这样做,List<? super Integer> b 这样你可以随意添加Integer对象,但是如果你这样定义List<? super Number> b=new ArrayList<Integer>();就会错误,因为接受的返型类型泛化了,范围只能缩小,你可以指定一个是Number的父类的返型,可是很遗憾API中没有,故而你只能用List<? super Integer> b=new ArrayList<Integer>()。个人心得随便说说还忘高手多多指导,祝楼主好运.