Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OptaPlanner中无法解释的NPE_Java_Nullpointerexception_Optaplanner - Fatal编程技术网

Java OptaPlanner中无法解释的NPE

Java OptaPlanner中无法解释的NPE,java,nullpointerexception,optaplanner,Java,Nullpointerexception,Optaplanner,我的OptaPlanner程序中出现无法解释的NullPointerException: 09:52:08.016 [main] INFO org.reflections.Reflections - Reflections took 44 ms to scan 1 urls, producing 5 keys and 5 values 09:52:08.163 [main] INFO o.o.core.impl.solver.DefaultSolver - Solving started:

我的OptaPlanner程序中出现无法解释的NullPointerException:

09:52:08.016 [main] INFO  org.reflections.Reflections - Reflections took 44 ms to scan 1 urls, producing 5 keys and 5 values 
09:52:08.163 [main] INFO  o.o.core.impl.solver.DefaultSolver - Solving started: time spent (17), best score (-191hard/3350soft), environment mode (REPRODUCIBLE), random (JDK with seed 0).
Exception in thread "main" java.lang.NullPointerException
    at org.optaplanner.core.impl.solver.recaller.BestSolutionRecaller.updateBestSolution(BestSolutionRecaller.java:128)
    at org.optaplanner.core.impl.solver.recaller.BestSolutionRecaller.updateBestSolution(BestSolutionRecaller.java:123)
    at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.phaseEnded(DefaultConstructionHeuristicPhase.java:154)
    at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.solve(DefaultConstructionHeuristicPhase.java:102)
    at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:87)
    at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:173)
    at JantermRunner.main(JantermRunner.java:28)
这是我第一次使用OptaPlanner,所以我完全相信我在某个地方搞错了,但是这个错误并没有给我任何关于哪里出错的信息,因为所有引用的行都是OptaPlanner代码。(JanterRunner第28行只是调用solver.solve)


编辑:澄清一下-我确实理解空指针异常是什么,我只是不知道如何设置我的OptaPlanner程序,使其不会在某个地方出现异常。

我打赌你正在使用你的
EasyScoreCalculator
,它将
null
作为
分数返回


在这种情况下,我将调整OptaPlanner以给出一个良好的错误消息。

“(JanterRunner第28行只是对solver.solve的调用)”
--您是否进行了测试,solver是否为空?很可能是这样。现在回头看看原因。可能是@HovercraftFullOfEels的重复,但在这种情况下stacktrace不是只包含该行吗?@f1sh否。这取决于参数在什么点被取消引用。如果
solve
没有进行防御检查,则很可能在取消引用之前,它会在调用层次结构中以某种方式结束。I have-solver不为null。