空指针异常错误。请帮助我

时间:2014-03-11 15:35:43

标签: java exception null public lang

我有2个类:Persoana(person)和PersoanaList(存储所有Persoana对象)

Persoana.java:

public class Persoana {
    private String nume;
    private String prenume;
    private ContCurent contCurent;
    private ContDepozit contDepozit;

    public Persoana(String n,String pr,ContCurent cC){//are doar cont curent
        nume=n;
        prenume =pr;
        contCurent=cC;
    }
    public Persoana(String n,String pr,ContDepozit cD){//are doar cont depozit
        nume=n;
        prenume =pr;
        contDepozit=cD;
    }
    public Persoana(String n,String pr,ContCurent cC,ContDepozit cD){//are atat cont curent cat si depozit
        nume=n;
        prenume =pr;
        contCurent =cC;
        contDepozit=cD;
    }
    public String getNume(){
        return nume;
    }
    public String getPrenume(){
        return prenume;
    }
    public void afisare(){
        System.out.println(nume);
        System.out.println(prenume);
        System.out.println(contDepozit.numarCard);
        System.out.println(contDepozit.pin);
        System.out.println(contDepozit.sold);
        contDepozit.getDataScadenta();

    }
    public int getPin(){
        return contCurent.pin;

    }

PersoanaList文件:

公共类PersoanaList {

 Persoana[] perslist = new Persoana[20];
int i=1;
public void adauga(Persoana a)
{

    perslist[i]=a;
    i++;


}
public void afisare(){
    for(int j=1;j<=perslist.length;j++)
    {
        perslist[j].afisare();
    }
}
public boolean cautare(String a,int b){
    boolean check=true;
    for(int j=1;j<=perslist.length;j++)
    {

        if(perslist[j].getNume().equals(a) && perslist[j].getPin()==b)
        check= true;
        else
            check= false;

    }
    return check;




}
public int marime(){
    return perslist.length;
}

}

每个Persoana都有一个名字和别针。 方法&#34; cautare&#34;将搜索数组,如果存在pin和name.If存在返回true(有点像登录);

我有这个错误:java.lang.NullPointerException 谁能帮我?请.. ..

Ps:perslist [j] .getNume() - isn&quot; t null,not..getPin()

1 个答案:

答案 0 :(得分:0)

您在PersoanaList类的一个循环中获得NullPointerException(NPE)。例如:

public boolean cautare(String a,int b){
    boolean check=true;
    for(int j=1;j<=perslist.length;j++)
{

    if(perslist[j].getNume().equals(a) && perslist[j].getPin()==b)

除非您已完全填充perslist变量,否则您将点击一个null的数组项,在调用.getName()时为您提供NPE。

在你修复之后,你可能会遇到一个ArrayIndexOutOfBoundsException,因为你的数组索引使用1到n。数组从0开始并转到n-1。因此,对于20个数组项,您可以将它们引用为0到19。