通配符泛型数组 不理解
Java code
List<?>[] intArr=new ArrayList<?>[10];//这句是什么意思?是不是跟List[] intArr=new ArrayList[10]效果一样?
List<Integer> intLst=new ArrayList<Integer>();
intLst.add(32);
List<String> strLst=new ArrayList<String>();
strLst.add("apple");
intArr[0]=intLst;
intArr[1]=strLst;
不懂。。。
------解决方案--------------------楼主是不懂范型还是不懂那个“?”号。不懂范型的话可以网上搜索一下,至于ArrayList<?>中问号是一个类型通配符,是任何泛型 List 的父类型,所以您完全可以将 String,Integer等存储在其中。
------解决方案--------------------List 类是 ArrayList 类的泛型等效类。
ArrayList是List的实现类,此外,实现了List接口的还有很多
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
都是List的实现类
建议去看看API,哪里相信比你来这里问好多了。
API名称:JDK_API_1_6_zh_CN.CHM
下载地址网上搜索下,多的是
------解决方案--------------------
------解决方案--------------------List<?> 等效于List<? extends Object>,确定List 容器存储数据的类型
比如可写成List<? extends InputStream>
则在参数列表传递时你可以传递 存储类型为InputStream 子类对象的集合
Java code
public static void test(){
te(new ArrayList<FileInputStream>());
}
public static void te(List<? extends InputStream> list)
{
}