take(ArrayList<?> list)与take(ArrayList list)这两个方法头有区别吗? 好像没有区别吧?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对于调用者是没什么区别,但是对于这2个list是不同的。传统的ArrayList不需要解释,但是ArrayList<?>是范型,它代表未知类型。所以你可以调list.add(new Object()) 给传统ArrayList,但是会在<?>造成编译错误。 ArrayList<T> 是泛型的意思是这个ArrayList里面只能放T类型的,例如ArrayList<String> 中只能放String放其他的类型就会报错,而且取的时候可以直接赋给String,不用再强制转换 1:对于传统的ArrayList,你可以add随意的对象,譬如list.add("a");list.add(new Object());2:对于ArrayList<?>,因为你不知道它元素是什么类型,可能是个ArrayList<String>,也可能是个ArrayList<Object>所以不能调list.add("a");list.add(new Object());否则会有编译错误。 <?> 应该是个错误的写法 package com.xuz.csdn.june9;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class ListTest { public static void main(String[] args) { List<? extends Number> list = new ArrayList<Integer>(); test(list); List<Number> list2 = new ArrayList<Number>(); test2(list2); test3(list2); } private static void test3(List<Number> list2) { list2.add(new Integer(1)); } private static void test2(List<? super Number> list2) { list2.add(new Integer(1)); } private static void test(List<? extends Number> list) { list.add(0, null); list.add(new Integer(1), null); System.out.println(list); }} 是泛型,看看就懂了,泛型增加了安全性,增加了List安全性检查 7楼,你的编译器对于ArrayList<?> a = new ArrayList<?>();是出错的吗?有鬼了。大家也试试 【求助】使用jaxb如何序列化 List对象啊 为什么程序中会出现俩解?求指导~~~~~~~~ 再问一个关于线程锁的问题,谢谢各路好汉! 关于equals和hashCode与==的问题 JAVA文件传输问题 html中嵌入applet打印问题 strictfp 是什么意思?native 是什么意思? 关于对象流的读写 jar包 提示outofmemoryError:java heap space 想学JAVA,应该用哪个开发工具 PriorityQueue先进先出吧? 如何设置JPanel透明
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;public class ListTest { public static void main(String[] args) {
List<? extends Number> list = new ArrayList<Integer>();
test(list); List<Number> list2 = new ArrayList<Number>();
test2(list2); test3(list2); } private static void test3(List<Number> list2) {
list2.add(new Integer(1));
} private static void test2(List<? super Number> list2) {
list2.add(new Integer(1));
} private static void test(List<? extends Number> list) {
list.add(0, null);
list.add(new Integer(1), null); System.out.println(list);
}}
ArrayList<?> a = new ArrayList<?>();
是出错的吗?
有鬼了。
大家也试试