将新元素添加到数组时,java.lang.ArrayIndexOutOfBoundsException?

时间:2017-06-01 10:35:28

标签: java arrays int indexoutofboundsexception

我有以下Java类,它将Person对象添加到现有人Array

 public class PersonService{

 protected int lastItemInPersonArray = 0;

 private Person[] persons = new Person[100];


 public void addPersonToPersonArray(Person personToAdd){

        persons[lastItemInPersonArray++] = personToAdd;

    }

}

我可以在这里正确添加1个对象,但是当我尝试2时,我收到以下错误:

java.lang.ArrayIndexOutOfBoundsException: 1

导致此问题的逻辑错误是什么?

1 个答案:

答案 0 :(得分:1)

这适合我。

public class PersonService {
    protected int lastItemInPersonArray = 0;
    private Person[] persons = new Person[100];
    public void addPersonToPersonArray(Person personToAdd) {
        persons[lastItemInPersonArray++] = personToAdd;
    }   
    public static void main(String[] args) {
        PersonService ps = new PersonService();
        ps.addPersonToPersonArray(new Person("P 1"));
        ps.addPersonToPersonArray(new Person("P 2"));
        ps.addPersonToPersonArray(new Person("P 3"));   
        System.out.println(ps.persons[0].nome);
        System.out.println(ps.persons[1].nome);
        System.out.println(ps.persons[2].nome);
    }
}
class Person{
    public Person(String nome) {
        this.nome = nome;
    }
    String nome;
}