注释最初显示了toString()方法,但我想将其更改为字符串构建器方法。我有几个,但这是最简单的一个。你可以看到我尝试过的东西。提前谢谢。
public StringBuilder toString() {
StringBuilder str = new StringBuilder();
str.append("Data in Kennel " + name + " is:");
//String results = "Data in Kennel " + name + " is:";
for (Animal d : dogs) {
//results = results + d.toString() + "\n";
str.append(d.toString() + "\n");
}
return str;
//return result;
}
答案 0 :(得分:2)
如果是toString()
覆盖,或者即使它不是,那么必须返回String,而不是StringBuilder。否则它不是真正的覆盖,并且它甚至不应该编译,因为方法签名与Object的toString()相同但具有不同的返回类型。
相反,确保在方法体内部使用StringBuilder,但返回StringBuilder toString()
。
如,
@Override // this must return String
public String toString() {
StringBuilder strBuilder = new StringBuilder();
strBuilder.append("Data in Kennel " + name + " is:");
for (Animal d : dogs) {
strBuilder.append(d.toString() + "\n");
}
return strBuilder.toString();
}
答案 1 :(得分:0)
您似乎正在尝试制作类似Object's
toString()
的方法,该方法会返回StringBuilder
。不要这样做。使用StringBuilder
,您可以使用String
将其转换为toString()
。
StringBuilder strb = new StringBuilder("SampleString");
String str = strb.toString();