我正在编写一个迭代对象数组的基本程序。然后我创建一个for-each循环并从用户输入设置数组中每个对象的值。但是,我在用于存储对象数组值的对象上获得了一个空指针异常。
这是我的代码: import javax.swing。*;
public class Calculation {
public static Stations[] createStationArray(){
int numOfStations;
String string = JOptionPane.showInputDialog(null,"How many stations are there?");
numOfStations = Integer.parseInt(string);
Stations[] stations = new Stations[numOfStations];
JOptionPane.showMessageDialog(null, stations.length);
return stations;
}
public static void main(String[] args){
Stations[] stations;
stations = createStationArray();
System.out.println("stations array value" + stations);
for(Stations station : stations)
{System.out.println("station variable value" + station);
int stationNum = 1;
double amountOfWaste;
station.setStationNum(stationNum);
String string = JOptionPane.showInputDialog(null,"What is this Station's waste amount?");
amountOfWaste = Double.parseDouble(string);
station.setWaste(amountOfWaste);
System.out.println("Station " + station.getStationNum() + " has a waste amount of " + station.getWaste());
}
}
}
我在使用变量" station"的for-each循环中遇到问题。 它应该是数组列表中的当前对象。但是,我得到一个空指针异常。这是控制台输出。
stations array value[LStations;@28787c16
Exception in thread "main" java.lang.NullPointerException
at Calculation.main(Calculation.java:27)
station variable value null
erException
at Calculation.main(Calculation.java:27)
答案 0 :(得分:3)
您创建了一个工作站数组,但没有填充它。因此,当您遍历数组时,每个条目仍为空。
答案 1 :(得分:0)
您需要在调用其上的方法之前实例化工作站。在实例化Stations数组后尝试在createStationArray()中添加它:
for (int i = 0; i < numOfStations; i++)
stations[i] = new Stations();