为什么我不能将Object添加到Object []数组中?

时间:2014-03-31 07:24:51

标签: java arrays

我知道我可以使用ArrayList,但我不明白为什么我不能将Object intance添加到以下Object []数组中?

class Penguin {
    public void say(){
        System.out.println("Hi, I am a penguin!");
    }
}
public class TempTest {
    private Object[] items;
    private int next = 0;
    private int i = 0;
    public void add(Object x){
        if(next < items.length)
            items[next++] = x;
    }
    public boolean end() { return i == items.length; }
    public Object current() { return items[i]; }
    public void next() { if(i < items.length) i++; }

    public static void main(String[] args) {
        Object[] obj = new Object[5];
        Object p = new Penguin();
        obj.add(p);
    }
}

Eclipse screenshot

6 个答案:

答案 0 :(得分:3)

Arrays没有add功能,您正在考虑收藏。

如果您有特定大小的数组,则可以设置该数组的索引:

Object[] arr = new Object[2];
arr[0] = /* your object */;

//...
Object yourObj = arr[0]; //returns that object

正如@SubhrajyotiMajumder所指出的,试着打电话给你的班级&#39;本地实施方法:

this.add(yourObj);

从那里可能有重构代码,这样你每次都在编辑同一个数组,而不是你在本地编写的那个。

答案 1 :(得分:3)

由于obj数组,您只需按索引添加元素:

obj[0] = someObject;

在您的情况下,您应该使用循环添加元素,从0到4。

有关详细信息,请参阅Arrays

答案 2 :(得分:2)

Object类没有任何名为add的方法。它是一个数组,所以你需要使用索引来放置对象。

同样创建一个Object数组并不是一个好主意,除非你真的需要这样做。更好地使用集合。

答案 3 :(得分:1)

Assign value for an array

obj[0] = p;

而不是

obj.add(p);

答案 4 :(得分:1)

obj是一个数组,您可以按

添加元素
obj[0] = object1;

答案 5 :(得分:0)

你需要在那里提到对象数组索引而不是add方法。

obj [array index] = p;