我有一个包含三个对象的列表: 对象1,对象2,对象3。
当我为每个对象调用toString方法时,结果如下:
对象的字母:A;对象编号:1。
对象的字母:B;对象编号:2。
对象的字母:C;对象编号:3。
因此,我希望此方法执行的操作是将所有这些信息放入字符串中。 所以我的方法是:
public String method1 () {
//And here is where its supposed to do that stuff
}
我知道如何获取列表并进行遍历,因此可以将toString
投射到列表中的每个对象中,但是我不知道该怎么做是如何将清单上所有对象的所有toString
信息都放在一个String变量中,因此我的方法将返回包含所有信息的字符串。
答案 0 :(得分:2)
欢迎使用Java,我感觉不太好!
您正确地假设,您需要(依次)调用对象的toString()-Method。您可以选择几种方式:
StringBuilder result = new StringBuilder();
for (Object obj : list) {
result.append(obj.toString());
}
return result.toString();
以上是“最简单的”方法之一。但是,还有其他几种(例如,如果要插入分隔线)。
return list.stream()
.map(Object::toString)
.collect(Collectors.joining(", "));
较短且有效(并且将逗号分隔为单独的字符串)。
DodgyCodeException也提到了调用list.toString()
。这对于调试或记录日志很有用,但对最终输出的控制较少。