我有一个关于我在下面创建的以下 toString() 方法的非常简单的问题。如果words是一个包含{apple,banana,grape}内容的arrayList,我只是想知道该方法是否:
public String toString()
{
for (int d = 0; d < words.size(); d++)
{
return "The word: " + words.get(d);
}
return "";
}
将返回:
The word: apple
The word: banana
The word: grape
我问这个问题的原因是因为当我省略了这一行时:
return "";
我收到一个错误,指出缺少 return 语句,因此我认为计算机可能无法识别 return 语句:
"return "The word: " + words.get(d);"
而不是返回:
The word: apple
The word: banana
The word: grape
它将返回:
null or ""
我不确定这是否有必要,但我也刚刚输入了在出现缺少 return 语句错误之前的代码。
public String toString()
{
for (int d = 0; d < words.size(); d++)
{
return "The word: " + words.get(d);
}
}
确切的错误是一条红线围绕着倒数第二个闭括号。确切的错误消息是:“缺少返回语句”
更新1:
我真的很感谢我能得到的所有帮助和对代码的建设性批评。我希望我没有把这个简单的问题变得太复杂。非常感谢:)
更新2:
很抱歉留下了这么多笔记。然而,我只是想知道这是否是一个常见问题,你们中的任何人都经常看到这个问题,因为这个问题在类里面似乎经常出现,而助教却无法回答这个问题。再次感谢:)
最佳答案
您只能从您的方法返回一个String
,而不是您当前尝试构造的单个String
。相反,请使用 StringBuilder
之类的东西来构建整个输出并返回
一次。
public String toString() {
StringBuilder sb = new StringBuilder();
for (int d = 0; d < words.size(); d++) {
sb.append("The word: ").append(words.get(d)) //
.append(System.lineSeparator());
}
return sb.toString();
}
或者效率较低(但仍然是StringBuilder
,只是许多临时的和不可见的)
public String toString() {
String sb = "";
for (int d = 0; d < words.size(); d++) {
sb += "The word: " + words.get(d) + System.lineSeparator();
}
return sb;
}
关于java - 方法返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241054/