Java - 添加方法与异常冲突



我已经坐了 2 个小时了,我找不到解决方案。我无法将多个朋友添加到我的 ArrayList,因为如果手机为空,它会从我的 getFriend() 方法中强制转换异常,而不是将其添加到列表中。解决此问题的简单方法是什么?

/**
 *  Ensures you can only add a friend if a friend with same phone number doesn't exist
 *  @param f as Friend
 *  @return boolean
 */
public boolean addFriend(Friend f){  
   if(getFriend(f.getPhone()) == null) {
       friends.add(f);
       return true;
   }
   else {
       System.out.println("-------------------------------------");
       System.out.println("Member with that phone already exists");
       System.out.println("-------------------------------------");
       return false;
   }  
}

/**
 *  Searches the arraylist for a friend matching phone
 *  
 *  @param phone as String
 *  @return Friend if matching phone, else returns a null
 */
public Friend getFriend(String phone) {
    Friend res = null;
    if(friends.size() != 0){
        for(Friend f : friends) {
            if(f.getPhone().equals(phone)){
                res = f;
            }
        }
        if(res == null){
          throw new NullPointerException("No result found");
        }
   }
    return res;       
}

更改

if(res == null){
      throw new NullPointerException("No result found");
}

简单地返回null.

当您检查null时,它将是安全的。

public Friend getFriend(String phone) {
if(friends.size() != 0){
    for(Friend f : friends) {
        if(f.getPhone().equals(phone)){
            return f;
        }
    }
}
return null;       
}
if(res == null && friends.size() == 0){

怎么样?这是一个有效的解决方案吗?

最新更新