【发布时间】:2021-11-03 21:09:37
【问题描述】:
我需要澄清 from 和 fromUnfiltered 在 Optaplanner 中使用 planningEntities 和 nullable 变量时的行为。
.from(T) 构建块选择问题事实集合或计划实体集合中的每个 T 实例,并且没有空计划变量。
要包含具有空计划变量的实例,特别是如果您使用可空变量,请将 from() 构建块替换为 fromUnfiltered():
但是from 方法的java doc 声明from 方法将过滤具有空变量的实体,除非它是nullable 变量:
启动 fromClass 的所有实例的 ConstraintStream,这些实例称为问题事实或规划实体。
如果fromClass是一个PlanningEntity,那么它将被自动过滤为只包含完全初始化的实体,每个真正的PlanningVariable(fromClass或其超类的)都被初始化(所以当值不为null时- 除非 PlanningVariable.nullable() 被修改)。此过滤不会自动应用于 fromClass 的子类规划实体的真正规划变量。
我不确定我的理解是否正确,我的测试表明 javadoc 是正确的,而用户文档具有误导性。或者也许我没有抓住重点。
有人澄清一下吗?
【问题讨论】:
标签: java quarkus optaplanner