所以我正在玩一些代码,当我运行它时,我收到了这个错误,
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);
}
}
}
如果有人能帮助我理解为什么我会得到这个感谢非常感谢
答案 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<>();