日期:2014-05-20  浏览次数:20729 次

通配符泛型数组 不理解
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<?>[] intArr=new ArrayList<?>[10];//这句是什么意思?是不是跟List[] intArr=new ArrayList[10]效果一样?

------解决方案--------------------
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)
    {
        
    }