为什么我的方法返回一个空数组?

Mag*_*nus 3 java arrays foreach null object

我正在使用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();
}}
Run Code Online (Sandbox Code Playgroud)

当我希望它包含5个实例化的"Case"对象时,从我的方法返回的列表包含5个空值.我怀疑这可能是某种可见性问题,但我无法弄清楚.

Bre*_*ail 9

for-each循环中使用的变量只是对数组元素当前值的引用.分配给该变量不会影响存储在数组中的值.你需要像这样使用for循环:

for (int i = 0; i < list.length; i++) {
    list[i] = new Case();
}
Run Code Online (Sandbox Code Playgroud)