为什么我的对象数组中的所有元素都为空?
问题描述:
我有2个班。第一个描述了一个项目,秒是围绕第一类的一系列项目建立的。为什么我的对象数组中的所有元素都为空?
我已经了解到,只是创建一个对象数组不会初始化它们。所以我在第二类的构造函数中放置了一个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 (HneAnalogItem item : list) {
item = new HneAnalogItem();
}
此增强的for循环不初始化数组元素。它等效于:
for (int i = 0; i < list.length; list++) {
HneAnalogItem item = list[i];
item = new HneAnalogItem();
}
要初始化你需要的数组元素:
for (int i = 0; i < list.length; list++) {
list[i] = new HneAnalogItem();
}