【发布时间】:2014-01-17 22:22:40
【问题描述】:
我目前有一个 toString 方法,类似于下面的方法。请忽略对象只是临时命名的。我这样做是为了不混淆每个变量的类型等:
@Override
public String toString() {
for(Object object : ArrayList) {
System.out.println("This object is a " + object.getVariableA() + " and a " + object.getVariableB() + ".");
}
return null;
}
但是 toString 方法要求我返回一个值。我显然只想返回我正在打印的字符串,尽管如果我在那里放置一个 return 语句,它只会打印一个对象,而不是我正在循环的所有对象。打印所有这些值而不是简单地返回 null 的最佳方法是什么,因为我不希望在所有对象之后打印出来?我还想确保这些对象中的每一个都像现在一样打印在单独的行上,所以请不要建议包含一个没有换行符的长连接字符串的解决方案,因为这不适合这种情况。
提前致谢!
【问题讨论】:
-
toString() 应该返回一个包含对象“描述”的字符串。它不应该打印任何东西。阅读 Object.toString() 的 javadoc。
-
@JBNizet 这是我最初的评论,但后来意识到 OP 只是在展示他们喜欢返回的内容。也就是说......“所以请不要建议包含一个长连接字符串的解决方案”......好吧,那么是的,你做错了
标签: java arraylist foreach tostring object-to-string