我必须在一个将行星添加到星系中的类中创建这个小方法,但似乎数组planeta中的元素k + 1没有被替换......是因为它在if语句中吗?
public void addPlanet(String planetName, BigInt x, BigInt y, BigInt z) {
if (planetExists(planetName) && !complete()){
newSP= new SpacePoint(x,y,z);
newPlanet= new Planet("planetName",newSP);
int k=this.size();
planeta[k+1]=planetName; //doesnt replace because its inside the if??
}
}
如果这是一个简单的问题,我很抱歉,我正在大学读java课程,我真的很新... PS:顺便说一句,谢谢大家,这些天你一直是我的老师! =)
答案 0 :(得分:3)
我怀疑问题是你实际上应该替换planeta[k]
- 并增加尺寸。
数组在Java中是基于0的,所以如果你的大小是2,你的数组可能有值:
planeta[0] = "Earth";
planeta[1] = "Jupiter";
...所以要填充的下一个广告位是planeta[2]
,并将大小增加到3。
更好的选择是使用List<String>
(例如ArrayList<String>
),这样你就可以调用add
,而你不必担心溢出的界限数组等。