【问题标题】:Why does my method return an array of nulls?为什么我的方法返回一个空数组?
【发布时间】:2015-05-25 06:55:52
【问题描述】:

我正在使用 foreach 循环遍历一个空数组,并用对象填充它。 “案例”是一个具有多个方法和属性的类。

我的代码如下所示:

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 个空值。我怀疑这可能是某种可见性问题,但我无法弄清楚。

【问题讨论】:

    标签: java arrays object foreach null


    【解决方案1】:

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

    for (int i = 0; i < list.length; i++) {
        list[i] = new Case();
    }
    

    【讨论】:

    【解决方案2】:

    另外, 您不需要从 test() 方法显式返回列表,因为它是 myTest 中的一个字段。

    这会很好,

    public void test(){
                for(int i=0;i<5;i++){
                    this.list[i] = new Case(); 
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 2022-01-09
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 2020-08-30
      • 2021-11-12
      相关资源
      最近更新 更多