【发布时间】:2015-03-27 05:04:59
【问题描述】:
所以我在同一个类中都有以下代码
List<Person> peopleList = new ArrayList<Person>();
private void viewPersons() {
if (peopleList.isEmpty()) {
System.out.println("No persons to display");
}
if (peopleList.isEmpty()!= true) {
//for(int i = 0; i <= peopleList.size(); i++) {
System.out.println(peopleList);
//}
}
}
还有一个名为 Person 的类,该数组包含对它的引用。
我从用户输入中获取值,这并不重要或问题,但是当此方法运行时(假设我有 Jon、4110987654 和 jjon@gmail.com 作为三个字符串的用户输入)我得到
“[Person@55f96302 Jon, 4110987654, jjon@gmail.com] 作为它的输出。”
如果我输入另一个人的信息,我会在一行中得到所有信息。它看起来像
"[Person@55f96302 Jon, 4110987654, jjon@gmail.com, Person@3d4eac69, 姓名、电话、电子邮件]"
但我想要的是
“Person@55f96302 乔恩, 4110987654, jjon@gmail.com
Person@3d4eac69、姓名、电话、电子邮件"
如何将它们分开,以便每个人的信息在不同的行上,而"Person@55f96302" 只是一个数字,例如 1 或 2?
我只是不确定应该添加什么语法或应该改变什么。
这是 Person 类中的 toString()
public String toString(){
StringBuilder builder = new StringBuilder();
builder.append(super.toString()).append(" ");
builder.append(fullName).append(", ");
builder.append(phoneNumber).append(", ");
builder.append(email).append(" ");
return builder.toString();
}
【问题讨论】:
-
适当覆盖
Person的toString()方法 -
而不是
if (peopleList.isEmpty()!= true),您可以简单地说为else -
你能展示一下 Person 类吗?您的输出似乎不可能。如果您没有在 Person 类中覆盖 toString(),它应该只显示
[Person@55f96302, Person@3d4eac69] -
如果没有看到
Person类的 getter,我们无法为您提供准确的解决方案。