每个元素是Integer对象,所以不能为int型,必须包装x.length()的length是属性,不是方法,应该是x.length对象数组没什么区别别啊,只要能申明赋值就没错。

解决方案 »

  1.   

    x[i] = new Integer[5];  为什么必须要new一下integer?
      

  2.   

    噢。对,是x.length
    不知道怎么修改帖子?上面得的a[], b[]怎么会没有区别呢?
      

  3.   

    (1)x[i] = new Integer[5];应该编译不过吧,需要一个Integer类型,
        你给他一个Integer[],怎么可以呢(2)a[],b[]没什么区别吧,结果是一样的
      

  4.   

    (1)不好意思,是啊。
    问个问题还有好多错误
    应该是x[i] = new Integer(i);(2)应该有区别得,
    他们同样是表示包含三个Integer元素的的对象数组
    Integer[] a = {new Integer(1), new Integer(2), new Integer(3)};
    实际上相当于 int[] a = new int[3]{1, 2, 3}
    a的大小初始化时就确定是3
    而Integer[] b = new Integer[] {
                       new Integer(1), new Integer(2), new Integer(3)};
    实际上相当于 int[] b = {1, 2, 3}
    b的大小没有确定,只是初始化3个元素谢谢以上的朋友!
      

  5.   

    回去我跟我们导师探讨了一下,举个例子:
    String a = "abc";
    String b = "abc";
    String c = new String("abc");
    String d = new String ("abc");
    在这4个对象中,a b 初始化,a与b存放在栈区里面,而他们的对应物理地址都是相同的(即"abc")。
    但是在对象c,d中,由于实例化了,他们对应的参数在堆区,也就是说c 对应一个"abc",d 对应一个"abc"。 
    所以a == b 是 true,c == d 是false
    而且所有的基本数据都是这个规则。