Java OptaPlanner中无法解释的NPE
我的OptaPlanner程序中出现无法解释的NullPointerException: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:
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。