如何在arrylist上修复NullPointerException?

时间:2018-05-19 19:27:56

标签: java nullpointerexception

如何在线程“main”java.lang.NullPointerException中修复Exception     在BankSystem.Branches.findCustomer(Branches.java:44) 我是编码的新手,java是我的第一语言,我不断得到这个错误,我不知道要解决它。

package BankSystem;

import java.util.ArrayList;

public class Branches {

private String name;
private ArrayList<Customers> newCustomer;

public Branches(){
}

public Branches(String name) {
    this.name = name;
    this.newCustomer = new ArrayList<>();
}

public ArrayList<Customers> getNewCustomer(){
    return newCustomer;
}

public String getName() {
    return name;
}

public boolean addCustomer(String name, double amount) {
    if (findCustomer(name) == null) {
        this.newCustomer.add(new Customers(name, amount));
        return true;
    }
    return false;
}

public boolean addTranstraction(String name, Double amount) {
    Customers existingCustomer = findCustomer(name);
    if (existingCustomer != null) {
        existingCustomer.addTransactions(amount);
        return true;
    }
    return false;
}

private Customers findCustomer(String name) {
    for(int i=0; i<this.newCustomer.size(); i++){
        Customers checkedCustomer = this.newCustomer.get(i);
        if(checkedCustomer.getName().equals(name)) {
            return checkedCustomer;
        }
    }
    return null;
}

}

2 个答案:

答案 0 :(得分:1)

我认为正在调用类的默认构造函数,它不会初始化newCustomer。您需要查看初始化导致错误的Branch的代码。 NullPointerException只表示您正在尝试使用尚未初始化的对象。

答案 1 :(得分:0)

findCustomer中的问题可能是,如果您在addTranstraction中查找的客户不存在,这将导致它返回null,并且尝试访问null变量是导致nullPointerException的原因。