我目前正在开展一个项目。在一个方法listPokemon中,我应该返回pokedex中的所有Pokemon,如果它是空的,则返回null。我无法弄清楚如何让它返回null,我有点卡住了。在情况1中,当它被调用时,如果listPokemon为null,则它应该打印" Empty。"这是我到目前为止使用的代码。有人能帮助我吗?
listPokemon:
public String[] listPokemon() {
String[] Poke = new String[counter];
for (int i = 0; i < counter; i++) {
Poke[i] = pk[i].getSpecies();
}
}
return Poke;
}
和案例1:
case 1:
System.out.println();
String[] pokemonList = pk.listPokemon();
if (pokemonList == null)
System.out.println("Empty");
else
for (int i = 0; i < pokemonList.length; i++) {
System.out.println((i+1) + ". " + pokemonList[i]);
}
break;
答案 0 :(得分:-1)
返回null可以使用语句return null
逐字地完成。我不确定counter
在你的例子中的价值是什么,但在我看来你需要重写你的for循环:
public String[] listPokemon() {
if(pk.length > 0){
String[] Poke = new String[pk.length];
for (int i = 0; i < pk.length; i++) {
Poke[i] = pk[i].getSpecies();
}
return Poke;
}
else {
return null;
}
}
我建议您查看List或Collection API,因为它有简洁的方法来处理列表:它有mehods isEmpty(),您可以在不知道列表大小的情况下添加追加到列表,因为您需要使用Arrays。
java 8中的Streams API功能更强大,但更复杂。
答案 1 :(得分:-2)
这是一个字符串数组。对?因此,如果数组中的第一项是空的,那么它应该返回空。我不认为一旦数组已经初始化,它就可以为null。