3
我有例如:有趣的行为通配符
public static <T extends Number> void doJob(List<T> pr,List<? extends Number> en,T tel){
//
System.out.println(pr.get(0).intValue());
}
List<? extends Integer> intList=new ArrayList<>();
Integer inval=200;
List<Integer> intList3=new ArrayList<Integer>(Arrays.asList(1,2,3));
doJob(intList3,intList,inval);//it is allowed
intList=intList3;
doJob(intList,intList,intList.get(0));//IT IS FORBIDDEN
为什么 doJob的编译器禁止不调用(intList中,intList中,intList.get(0));甚至intList实际上是 列表类型?
看来你是对的,因为我试图定义另一种方法:public static void doanotherJob(List pr,List <?extends Number> en)。在这种情况下,它可以与doanotherJob(intList,intList)一起使用;谢谢。 –
2015-03-13 11:46:55
谢谢。但是,在我得到15分的声望之前,你需要等待一小会儿才能够成功。 :-( – 2015-03-16 11:03:31