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;
不懂
解决方案 »
- java 菜单,以字符数组的方式添加菜单项时如何给菜单项添加事件处理
- java 打印输出乱,以及Ajax输出乱码问题
- 求一个正则表达式的写法
- 在不同的环境Workbook.getWorkbook(new FileInputStream(excelfile)); 读取excel文件的错误
- java中如何将Frame框架放在屏幕中央
- 关于JOptionPane.showMessageDialog
- 任务失败!
- 找VisiBroker Edition.....去bland公司的网站居然没有...
- 请问大虾们,那里有JBuilder使用书籍的下载?
- Java提供父类无法使用
- Java 正则表达式 解析方法名
- 关于桌面应用程序的迷惑
ArrayList是List的实现类,此外,实现了List接口的还有很多
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
都是List的实现类建议去看看API,哪里相信比你来这里问好多了。
API名称:JDK_API_1_6_zh_CN.CHM
下载地址网上搜索下,多的是
泛型,API有详细介绍
List<?>[] intArr=new ArrayList<?>[10];//这句是什么意思?是不是跟List[] intArr=new ArrayList[10]效果一样?
没错结果是一样的。唯一不一样的是,第一种方式消除了警告。
你如果用IDE直接把鼠标放到intArr变量上面,就可以看到IDE的提示。
public static void test(){
te(new ArrayList<FileInputStream>());
}
public static void te(List<? extends InputStream> list)
{
}如上,如果不是InputStream的子类则编译不通过
List<? extends Object>,即可存储的类型为Object的子类型,java所有对象默认是Object的子类
,即所有类型元素的List都支持,这样没有起到有界的作用,和List无差异了