所以我有一个名为Persons的类,它现在有一个在main中创建时添加Person对象的方法。
import java.util.*;
public class Persons {
public ArrayList<Person> personsList = new ArrayList<Person>();
public boolean addPerson(Person newPerson) {
personsList.add(newPerson);
return true;
}
}
这是我的主要方法
import java.util.*;
public class testPersons {
public static void main(String[] args) {
Persons persons = new Persons();
Address person1Address = new Address(xxx, "xxx", "xxx", "CA", "xxx");
Address person1JobAddress = new Address(1542, "High St", "Santa Cruz", "CA", "94063");
ArrayList<String> person1Phone = new ArrayList<String>();
person1Phone.add("xxx-xxx-xxx");
Job person1Job = new Job("Teacher", 25000.00, person1JobAddress);
Person person1 = new Person("xxxxxxx", "San Mateo", 'M', person1Address, person1Job, person1Phone);
persons.addPerson(person1);
System.out.println(persons);
}
}
所以我的问题是,"我该如何将对象Persons1添加到Persons类中的arrayList中?"它确实会编译,但当我运行它时,我会听到奇怪的胡言乱语。是我在Persons类main中遗漏了什么,还是我不能像以前那样打印ArrayList中的对象?
确保所有与Person
相关的类(包括Person
)都覆盖默认的toString()。
当您System.out.println(人员)时,会发生以下情况:
- ArrayList中的
Person
对象被逐个调用 - 对于每个
Person
对象,都会调用其toString()
is方法。如果未覆盖toString()
,则将调用Object
(默认值)toString
。因此出现了"奇怪的胡言乱语"。您需要通过重写toString()
来告诉java您想要显示什么样的"演示">