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

标签 java arrays object foreach null

我正在使用 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 个空值,而我希望它包含 5 个实例化的“Case”对象。我怀疑这可能是某种可见性问题,但我无法弄清楚。

最佳答案

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

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

关于java - 为什么我的方法返回一个空值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190695/

相关文章:

java - 如果不中断,Future.cancel() 会做什么?

ios - 无法将 Int 类型的值分配给 Swift 2.1 中 Int 数组的元素

jQuery 数组不断返回 [object Object]

javascript - 选定日期随机排序,查找最早和最晚的

javascript - react 覆盖对象中的状态变量

java - MapByteBuffer 比 BufferReader 更快吗?

java - 编译器何时不隐式使用 StringBuffer/StringBuilder?

java - 使用 Google 的 Gson 进行严格的 JSON 解析?

c++ - 如何通过 vector/ map 使用指向对象的多个指针

c++ - 如何在函数内部创建一个对象并将其返回给 main() 而无需析构函数在 C++ 中将其删除?