黑马程序员技术交流社区

标题: ArrayList的泛型问题 [打印本页]

作者: 刘晓康    时间: 2012-3-31 19:35
标题: ArrayList的泛型问题
ArrayList<Integer> list=new ArrayList<Integer>();
这个声明提示ArrayList处有错误,请问一下怎么解决.
作者: 刘泰    时间: 2012-3-31 19:54
public static void main(String[] args) {
       
              ArrayList<Integer> List= new ArrayList<Integer>();
             List.add(4);
             List.add(5);
             List.add(7);
             List.add(7);
         System.out.println(List);
        }
打印结果:[4, 5, 7, 7]。
不知道你用的什么软件编写的,还是怎么的,我的完全可以运行,没有错误。

作者: 陈超    时间: 2012-3-31 20:03
你用的Eclipse吧?是不是没导包啊,import  java.util.ArrayList;
作者: 如梦初醒    时间: 2012-3-31 20:29
可能是你的编译器版本过低,最低要1.5版,因为泛型出现在 jdk1.5以后,配置一下编译器版本试试,用1.5或1.6
作者: 袁野    时间: 2012-4-1 08:21
错误的信息 , 还有你的代码也不齐全  ArrayList<Integer> list=new ArrayList<Integer>(); 是没错误的

作者: 陈苓    时间: 2012-4-1 09:55
      代码是没有错,是不是你没有导包
作者: 李震 李震 李震    时间: 2012-4-1 12:28
   是否是版本问题,换下版本试试,然看看你Eclipse下,是不是用的你自己装的JDK,还是用Eclipse自带的JDK。
作者: 黑马胡林    时间: 2012-4-1 12:33
版本不能低于1.5的,或是你用的编译器没导JDK,要不就是你没导入java.util.ArrayList.工具包了
作者: 胡川    时间: 2012-4-1 12:35
ArrayList list = new ArrayList<Integer>();
此时list等同于ArrayList<Object>类型

ArrayList<Integer> list2 = new ArrayList();
指定了list2只能存放Integer类型

泛型的具体类型限制是受制于前面的声明,而不限于后面new出来的类型,

之所以出现这两种写法,是为了保持兼容性,安全性检查就要自己考虑了。
ArrayList<Number> list= new ArrayList<Integer>();
这种编译的时候类型只能存放Number类型,  这个是泛型定义死的,只能存放Number类型,
作者: 代臣    时间: 2012-4-1 13:04
希望你把代码附上,看过之后一头雾水。
作者: 郑涛    时间: 2012-4-2 23:52
是不是你用add方法向集合中加入Integer以外对象了……
作者: 郑涛    时间: 2012-4-2 23:53
郑涛 发表于 2012-4-2 23:52
是不是你用add方法向集合中加入Integer以外对象了……

早改好了是不是,我这是什么啊。。
作者: 薛飞飞    时间: 2012-4-3 18:45
这行代码是没有问题的,肯定是其他地方出了问题,你最好把所有代码发来,大家才好帮你解决
作者: 白磊    时间: 2013-5-5 18:52
如果你只写了这么一句就错了的话,那么问题绝对是没有导这个包
import java.util.*;    加上这个就好了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2