覆盖.toString方法与循环.getMethod以打印

时间:2016-12-07 14:44:29

标签: java

尝试打印数组的家庭作业有一个特殊问题。我没有具体的代码......没有找到具体的答案。 它是使用print方法打印哈希码,并且共识是.toString()方法解决了这个问题。我无法让这个工作,但在这里找到了第二个答案:

https://stackoverflow.com/a/19845901/7262393

我的问题是(如果一般可以回答),为什么我不会只使用.get()方法并循环遍历本回答中建议的所有元素?是否有任何特殊原因使用另一个?我假设.toString方法是一个循环,它将每个元素转换为字符串,然后打印它们。

由于

3 个答案:

答案 0 :(得分:0)

当使用.get()方法将多个字段连接到String时,您将牺牲一些性能,因为对于每个+操作,需要创建一个新的String(Java字符串是不可变的)。

使用.toString()方法时,您可以使用以下内容:

String.format("Person {name:%s, street:%s}",name,street);

会有更好的表现。

答案 1 :(得分:0)

我想,Apache Commons ReflectionToStringBuilder会帮助你。有关详细信息,请查看此document

它可以用于下一个方式:

ReflectionToStringBuilder.toString(<object you want to print to string>);

答案 2 :(得分:0)

那么每次想要查看容器对象的内容时,您更愿意做什么?循环并打印每个包含的项目或致电System.out.println(obj.toString());

一般情况下,为您的课程添加toString()方法会更好,因为在调试时您可能会想要做很多事情,这样可以节省您重复的工作量很多次!