![](https://cdn.statically.io/img/cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon@2.png)
I keep getting array dimension missing
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 has six dimensions, and I have an array of multiple planets
22 Answers
You have to declare size of the array before you can use it's length
attribute.
For example:
allPlanets = new Planet[6];
When you create an array, you have to specify the size. I strongly suspect you want:
In in = new In(filename); int nPlanets = in.readInt(); allPlanets = new Planet[nPlanets];
Note that it's odd that you're assigning to a field and returning the reference from the method. It would be more usual to do one or the other, e.g. use a local variable:
Planet[] planets = new Planet[nPlanets]; ... return planets;
And then assign to the field in the calling code:
allPlanets = readPlanets(...);
1ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJoam5oY2WCeX6Onqmrp6JirrO%2BwLJknaGdmru0tc6nZKaho6i2r7M%3D