当尝试使用. penalizelong时,OptaPlanner中的UnsupportedOperationExcept



我得到了java.lang.UnsupportedOperationException: Impossible state: passing long into an int impacter.

当试图从ConstraintProvider类中使用.penalizeLong函数时。

您有一个基于int的评分类型,例如HardSoftScore。你不能用long匹配权重来惩罚它。

你有两个选择:

选项a:如果您的匹配权重适合int类型大小,只需将penalizeLong()替换为penalize()

选项b。否则,如果您需要使用long匹配权重进行惩罚。将@PlanningSolution注释类中的分数类型从HardSoftScore更改为HardSoftLongScore

最新更新