【发布时间】:2017-09-06 12:05:35
【问题描述】:
我在 if 和 else 两种情况下都输入了 return 语句
但还是说缺少return语句
我的代码有什么问题?
public static getNext(){
ArrayList<String> copy = new ArrayList<String>();
Random dice = new Random();
int rolls;
for(int x=0; x<i.length; x++){
copy.add(i[x]);
}
if(copy.size() < 1){
return "NONE";
}
else{
rolls = dice.nextInt(copy.size());
return copy.get(rolls);
copy.remove(rolls);
}
}
【问题讨论】:
-
return copy.get(rolls); copy.remove(rolls);来吧,真的吗?这应该如何工作? -
copy.remove(rolls)是无法访问的代码;仅此一项就应该出错。 -
public static getNext(){ -
使用
return copy.remove(rolls);。ArrayList#remove(int index)返回删除的元素。 -
我猜编译器只是因为语法混乱而吐出错误的错误信息。如果只是那个问题,它应该提出“无法访问的代码”。但在此之前,您的方法缺少返回类型,这也会导致缺少返回类型的正确错误消息。所以我的猜测是该类中可能存在更多语法问题。
标签: java if-statement return void