有人可以提供一些有关代码无效的原因吗?问题出在部分国家[numCountries]=newCountry;
我不确定为什么它一直说类型不匹配无法将Country[]
转换为国家/地区,但我认为我的countries[numCountries]
是Country[]
类型,因为我已在第2行调用它代码是那种类型?
public class World{
private Country[] countries;
private int numCountries=0;
public boolean addCountry(Country[] newCountry){
if(!(newCountry==null)){
countries[numCountries]=newCountry; //the newcountry part doesnt work, red zigzag line underlining it here im not sure why
numCountries++;
return true;
}
else
return false;
}
}
答案 0 :(得分:3)
您的方法表示您要添加 国家/地区,而不是添加国家/地区数组,因此您的方法参数可能会丢失数组括号[]
。这种方法更有意义,因为它传递了你应该传入的内容 - 一个Country对象。在尝试将另一个国家/地区添加到阵列之前,您还需要检查您的方法是否超过countries数组的大小。这可以通过简单的if语句来完成。
如果要添加Country数组,那么您可能希望创建另一种方法,例如addCountries(Country[] newCountries)
。但我不认为你真的想这样做,所以坚持使用经过纠正的当前方法。
如果其中任何一项没有意义,请询问 - 只需在此答案下面写下评论。
答案 1 :(得分:3)
国家/地区之后的方括号表示您是addCountry方法正在添加一系列国家/地区,但您最有可能希望一次只添加一个国家/地区。
所以,将其改为:
public boolean addCountry(Country newCountry){
....
}