java - 为什么我无法将对象添加到 Object[] 数组?

标签 java arrays

我知道我可以使用 ArrayList 来实现此目的,但我不明白为什么我无法将 Object 实例添加到以下 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

最佳答案

数组没有 add 函数,您正在考虑集合。

当你有一个特定大小的数组时,你可以设置该数组的索引:

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

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

正如 @SubhrajyotiMajumder 所指出的,尝试调用类的方法的本地实现:

this.add(yourObj);

从那里可能会重构代码,以便您每次都编辑相同的数组,而不是本地创建的数组。

关于java - 为什么我无法将对象添加到 Object[] 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755754/

相关文章:

c++ - 对字符串指针数组进行排序

arrays - 如何使用Delphi填充结构/记录数组?

java - 如何访问DRF服务器端的请求主体模型字段?

java - MultiValuedMap 声明的问题

java - 如何使用 JSP/Java 防止页面添加到浏览器历史记录中?

java - 子矩形的数量

PHP如何从多维数组中获取值?

java - 让第二辆车随机颜色不同JAVA

java - FileChannel 和 Socket 之间传输文件

CUDA - 如何返回未知大小的结果