2016-01-27 117 views
0

我不斷收到陣列尺寸失蹤錯誤陣列尺寸失蹤

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; 
} 

星球有六個維度,而我有多個行星

+5

請張貼代碼*文字*,不是作爲一個屏幕截圖。這將有助於你展示你如何聲明'allPlanets',因爲我懷疑它實際上有6個維度... –

+0

看起來'Planet'有一個維度,也許有六個元素? –

回答

2

您必須聲明數組的大小,然後才能使用它的數組length屬性。

例如:

allPlanets = new Planet[6]; 
0

當您創建一個數組,你必須指定大小。我強烈懷疑你想要:

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

請注意,分配給字段並從方法返回引用是很奇怪的。另一個例如會更常見。使用局部變量:

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

return planets; 

,然後分配到外地調用代碼:

allPlanets = readPlanets(...); 
+0

謝謝你的幫助。但是所有行星都是一系列行星,每個行星都有六個維度。植物是陣列中行星的總數 –