所以我有一个名为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);
}
}
所以我的问题是,&#34;我如何将对象Persons1添加到Persons类的arrayList中?&#34;它确实编译,但是当我运行它时,我得到了奇怪的胡言乱语。是不是我在我的Persons类中遗漏了一些东西,主要还是不能像我一样在ArrayList中打印对象?
答案 0 :(得分:0)
确保包括Person
在内的所有Person
相关类都覆盖默认的toString()。
当您使用System.out.println(人员)时,会发生这种情况:
Person
个对象。 Person
对象,调用其toString()
方法。如果未覆盖toString()
,则会调用Object
(默认)toString
。因此,怪异的胡言乱语&#34;。你需要告诉java什么样的&#34;演示&#34;您希望通过覆盖toString()