我有这种方法来检查数组中是否存在具有名字和姓氏的Member对象。
public boolean checkMemberExists(String firstName, String lastName) {
System.out.println("f: " + firstName + ", l: " + lastName);
for(int i = 0; i < this.memberList.length; i++) {
if(this.memberList[i].getFName().equals(firstName) &&
this.memberList[i].getLName().equals(lastName)) {
return true;
} else {
System.out.println("not found count " + i);
}
}
System.out.println("False....");
return false;
}
如果对象不存在,则if语句中的firstName和lastName匹配时,它会返回没有错误的罚款:
MemberCollection.checkMemberExists上的线程“ main”中的异常java.lang.NullPointerException。
它应该返回false而不是引发异常?Java新手。
这是即时通讯使用此方法的方式:
if(membersCollection.checkMemberExists(fName, lName)) {
System.out.println( ">> " + fName + " " + lName + " has already registered.");
} else {
// register
System.out.println("Registering user...");
}
首先,NullPointerException
可以说Java是Java中最可能,最重要和最经常抛出的异常。请参阅什么是NullPointerException,以及如何解决它?更多细节。
您的错误在此行中:
if(this.memberList[i].getFName().equals(firstName) &&
在这里,如果in memberList[i]
中的对象不存在,null
则抛出此异常以表明您访问了一个不存在的对象。在检查姓名(预先确定)之前,您必须检查该人本身是否存在。如果根本没有人在数组的索引上,那么您就必须continue
循环并继续查找。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句