如何从main添加对象到ArrayList?

时间:2017-01-27 22:36:30

标签: java object arraylist main

所以我有一个名为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中打印对象?

1 个答案:

答案 0 :(得分:0)

确保包括Person在内的所有Person相关类都覆盖默认的toString()。

当您使用System.out.println(人员)时,会发生这种情况:

  • 逐个调用ArrayList中的Person个对象。
  • 对于每个Person对象,调用其toString()方法。如果未覆盖toString(),则会调用Object(默认)toString。因此,怪异的胡言乱语&#34;。你需要告诉java什么样的&#34;演示&#34;您希望通过覆盖toString()
  • 来展示