所以我使用foreach循环来创建一个对象实例数组。所以我有构造函数
Object[] instance = new Object[300],
和foreach循环
for (Object i : instance)
{
i = new Object(randParam1, randParam2);
System.out.println("val " + i);
System.out.println("stored " + instance[j]);
j++;
}
(j先前已初始化, randParam是随机声明的参数的缩写。
所以我希望这会遍历数组中的300个实例,并为每个实例声明随机参数。我的打印函数“val”显示我确实得到每个循环随机生成的实例。但是我的print函数“stored”返回空值,表明每次循环结束时,值都被声明为null。我哪里错了? 感谢您的帮助,请在任何误用的术语上纠正我。
要继续,我会尝试解释我的目标。所以我有“Object”类,它包含构造函数 public Object(double dis,double ang,double diam,double sp,String col) { / 从超类 /访问构造函数 super(dis,ang,diam,sp,col); } 在我的main函数中,我声明了一个300对象“实例”的数组。然后我继续使用for循环 for(Object i:instance) i = new Object(randParam1,randParam2等等); 参数是dis,ang,diam等的随机值。我试图为所有300个实例分配随机值。我实现了这个,如我的“Val”打印功能所示,但是我的“存储”功能显示了值。 val和存储的函数不在我的最终代码中。
答案 0 :(得分:0)
看起来你正在遍历集合中的项目,而没有为每个项目赋值j,因为集合是不可变的。
看看这个SF问题 - Java: adding elements to a collection during iteration
我不太确定你想要实现的目标,但是这个例子就是使用第二个集合。
我猜是这样的:
Object[] instance = new Object[300];
Object[] instanceNew = new Object[300];
for (Object i : instance)
{
instanceNew.Add(j)
j++;
}
for (Object i : instanceNew)
{
System.out.println("val " + i);
}