首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

通配符泛型数组 不理解解决思路

2012-02-04 
通配符泛型数组 不理解Java codeList?[] intArrnew ArrayList?[10]//这句是什么意思?是不是跟List[]

通配符泛型数组 不理解

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)    {            } 

热点排行