Java 为什么我不能将对象添加到对象[]数组?
我知道我可以使用ArrayList来实现这一点,但我不明白为什么我不能将Object intance添加到以下Object[]数组中Java 为什么我不能将对象添加到对象[]数组?,java,arrays,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; pri
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);
}
}
对象类没有任何名为add的方法。它是一个数组,所以你需要使用索引放置对象
另外,创建一个对象数组也不是一个好主意,除非你真的需要这样做。更好地使用集合。数组没有添加功能,您考虑的是集合
当具有特定大小的数组时,可以设置该数组的索引:
Object[] arr = new Object[2];
arr[0] = /* your object */;
//...
Object yourObj = arr[0]; //returns that object
正如@subbrajyotimajumder所指出的,尝试调用类的本地方法实现:
this.add(yourObj);
从这里可以重构代码,以便每次都编辑相同的数组,而不是本地创建的数组。因为obj是一个数组,所以只需通过索引添加元素:
obj[0] = someObject;
在您的例子中,您应该使用循环添加元素,从0到4
有关更多信息,请参阅
而不是
obj.add(p);
obj是一个数组,您可以通过
obj[0] = object1;
您需要在这里提到对象数组索引,而不是add方法
obj[数组索引]=p 为什么您认为Java中的数组有add方法?请阅读一些教程。事实上,我太快了。虽然我添加了add方法,但它属于testest not Object[]。我的错。数组不是数据结构吗?“我想你指的是收藏。”科帕尼霍勒说得对,我有点滑倒!我希望可以使用arr[0]访问企鹅对象;不要将其设置为对象数组,而是将其设置为具有say方法的某个公共接口的数组:
obj[0] = object1;