我有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()
答案 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。