我正在使用foreach循环迭代一个空数组,并用对象填充它。 “Case”是一个具有多种方法和属性的类。
我的代码如下所示:
public class Test {
private Case [] list = new Case[5];
public Case [] test(){
for(Case myCase : list){
myCase = new Case();
}
return list; //This list contains 5 nulls, but should contain five "Case" objects.
}
public static void main(String[] args){
Test myTest = new Test();
myTest.test();
}}
当我希望它包含5个实例化的“Case”对象时,从我的方法返回的列表包含5个空值。我怀疑这可能是某种可见性问题,但我无法弄明白。
答案 0 :(得分:9)
for-each循环中使用的变量只是对数组元素当前值的引用。分配给该变量不会影响存储在数组中的值。你需要像这样使用for循环:
for (int i = 0; i < list.length; i++) {
list[i] = new Case();
}
答案 1 :(得分:0)
另外, 您不需要从test()方法显式返回列表,因为它是myTest中的一个字段。
这样可以很好地完成,
public void test(){
for(int i=0;i<5;i++){
this.list[i] = new Case();
}
}