我不断丢失数组维度
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有六个维度,我有一个多个行星阵列
答案 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(...);