为什么Station For Object在For-Each循环中是否为空?

时间:2014-06-28 22:24:03

标签: java arrays loops

我正在编写一个迭代对象数组的基本程序。然后我创建一个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)

2 个答案:

答案 0 :(得分:3)

您创建了一个工作站数组,但没有填充它。因此,当您遍历数组时,每个条目仍为空。

答案 1 :(得分:0)

您需要在调用其上的方法之前实例化工作站。在实例化Stations数组后尝试在createStationArray()中添加它:

for (int i = 0; i < numOfStations; i++) 
    stations[i] = new Stations();