Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的对象数组中的所有元素都为空?_Java - Fatal编程技术网

Java 为什么我的对象数组中的所有元素都为空?

Java 为什么我的对象数组中的所有元素都为空?,java,Java,我有两门课。第一个类描述一个项,第二个类围绕第一个类的项数组构建 我已经了解到,仅仅创建一个对象数组并不能初始化它们。所以我在第二个类的构造函数中放置了一个for循环来初始化所有项。 但是,当进入clear()函数时,列表数组的所有元素仍然为空。为什么呢 class HneAnalogItem { String description; String unit; float value; HneAnalogItem(){}

我有两门课。第一个类描述一个项,第二个类围绕第一个类的项数组构建

我已经了解到,仅仅创建一个对象数组并不能初始化它们。所以我在第二个类的构造函数中放置了一个for循环来初始化所有项。 但是,当进入clear()函数时,列表数组的所有元素仍然为空。为什么呢

class HneAnalogItem {
    String  description;
    String  unit;         
    float   value;

   HneAnalogItem(){}        
}

class HneAnalogInfo
{
    static final private int MAXANALOGINFOITEMS = 100;

    private HneAnalogItem[] list;

    HneAnalogInfo() {
        list = new HneAnalogItem[MAXANALOGINFOITEMS];
        for(HneAnalogItem item : list) {
            item = new HneAnalogItem();
        }

        clear();
    }

    void clear() {
        for(HneAnalogItem item : list) {
            item.description = "";
            item.unit = "";
            item.value = 0;
        }
    }
}
此增强for循环不会初始化数组元素。这相当于:

for (int i = 0; i < list.length; list++) {
    HneAnalogItem item = list[i];
    item = new HneAnalogItem();
}
for(int i=0;i
要初始化所需的数组元素,请执行以下操作:

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