错误数组维缺失

时间:2016-01-27 06:52:59

标签: java arrays dimensions

我不断丢失数组维度

public static Planet[] readPlanets(String filename) {

    allPlanets = new Planet[];
    In in = new In (filename);
    int nplanets = in.readInt();
    double radius = in.readDouble();
    for (int i = 0; i < allPlanets.length; i++) {
        double pxxPos = in.readDouble();
        double pyyPos = in.readDouble();
        double pxxVel = in.readDouble();
        double pyyVel = in.readDouble();
        double pmass = in.readDouble();
        String pimgFileName = in.readString();
    }
    return allPlanets;
}

Planet有六个维度,我有一个多个行星阵列

2 个答案:

答案 0 :(得分:2)

您必须先声明数组的大小,然后才能使用它的length属性。

例如:

allPlanets = new Planet[6];

答案 1 :(得分:0)

创建数组时,必须指定大小。我强烈怀疑你想要:

In in = new In(filename);
int nPlanets = in.readInt();
allPlanets = new Planet[nPlanets];

请注意,您分配给某个字段并从该方法返回引用很奇怪。更常见的做一个另一个,例如使用局部变量:

Planet[] planets = new Planet[nPlanets];
...

return planets;

然后分配给调用代码中的字段:

allPlanets = readPlanets(...);