ArrayList的空指针异常

时间:2014-10-30 19:26:08

标签: java nullpointerexception

所以我正在玩一些代码,当我运行它时,我收到了这个错误,

Exception in thread "main" java.lang.NullPointerException
    at VRSolution.findSavings(VRSolution.java:35)
    at VRTests.main(VRTests.java:22)

这是我的代码

public void testAlgo() {
    this.soln = new ArrayList<List<Customer>>();
    int max = this.prob.depot.c;
    int current = 0;
    ArrayList<Customer> route = null;
    for(Customer c:prob.customers){
        if(current <= max){
            route.add(c);
            current += c.c;
        }
        else {
            route = new ArrayList<Customer>();
            soln.add(route);
        }
    }
}

如果有人能帮助我理解为什么我会得到这个感谢非常感谢

4 个答案:

答案 0 :(得分:0)

route.add(C);可以在arraylist初始化之前调用line。 可能这是你的问题。因此,在向其添加项目之前初始化路线。

答案 1 :(得分:0)

你有这个:

ArrayList<Customer> route = null;

然后这个:

route.add(c);

如果您尝试在null引用上调用方法,则会得到NullPointerException

答案 2 :(得分:0)

ArrayList<Customer> route = null;替换为

List<Customer> route = new ArrayList<>();

答案 3 :(得分:0)

在调用之前初始化列表。在您的情况下,路由为空,这是您获得异常的原因。

试试这个:

   ArrayList<Customer> route = new ArrayList<>();