getCountry方法错误

时间:2012-05-16 00:21:15

标签: java arrays

有人可以提供一些有关代码无效的原因吗?问题出在部分国家[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;

       }


}

2 个答案:

答案 0 :(得分:3)

您的方法表示您要添加 国家/地区,而不是添加国家/地区数组,因此您的方法参数可能会丢失数组括号[] 。这种方法更有意义,因为它传递了你应该传入的内容 - 一个Country对象。在尝试将另一个国家/地区添加到阵列之前,您还需要检查您的方法是否超过countries数组的大小。这可以通过简单的if语句来完成。

如果要添加Country数组,那么您可能希望创建另一种方法,例如addCountries(Country[] newCountries)。但我不认为你真的想这样做,所以坚持使用经过纠正的当前方法。

如果其中任何一项没有意义,请询问 - 只需在此答案下面写下评论。

答案 1 :(得分:3)

国家/地区之后的方括号表示您是addCountry方法正在添加一系列国家/地区,但您最有可能希望一次只添加一个国家/地区。

所以,将其改为:

public boolean addCountry(Country newCountry){
    ....
}