ArrayList al=new ArrayList();
al.add(1);
al.add(2);
al.add(3);
就报错cannot resolve symbol
帮助文档里说add方法是增加一个元素,这个元素必须是对象吗?那1,2,3就是基本类型的对象啊。
我把1,2,3分别定义了xyz,再add(x)之类的,还是同样的错误,该怎样改呢?
al.add("abd");就不报错,关于string类比较特殊,是不是"abd"就是一个常量对象了?

解决方案 »

  1.   

    你用的什么1.4的jdk吧。
    从1.5开始自动将1,2,3这样的值转换为其包装器类型。
    Integer a=new Integer(1);
    al.add(a);
    这样就可以了。
    String不是基本类型。
      

  2.   

    ArrayList al=new ArrayList(); 
    al.add(new Integer(1)); 
    al.add(new Integer(2)); 
    al.add(new Integer(3)); 方法写得很清楚了。。add(Object obj)必需是个Object
      

  3.   

    up
    Java当中,我们称int,byte,float等类型为原始类型.它们都有对应的封装类型.也就是说,Java里面,原始类型没有对象的概念.而封装类,则是面向对象的一种称呼.那么,int它对应的Java类就是Integer.
    int i=0;对应的Java对象,应该是用Integer ii=new Integer(0);来声明.在JDK1.4或以前的版本中,集合对象,它里边的元素必须是对象,不能是原始类型的变量.
    JDK1.5以后,集合对象,仍然如故.但是,JDK1.5它有一个新特性,可以简化代码.它是在范型的基础上实现的.在使用集合类的时候,只要声明了集合所要添加的内容的范型,就可以直接将对应的原始类型,进行相关的add等操作,这时,编译器会自动将其封装成原始类型对应的封装类型的对象.例如://JDK1.4或以前版本
    ArrayList list = new ArrayList();
    list.add(new Integer(1));
    list.add(Integer.valueOf(2));//JDK1.5或更高版本
    ArrayList<Integer> aList = new ArrayList<Integer>();
    aList.add(1);
    aList.add(2);