我以以下方式开始在我的OptaPlanner项目中定义一个约束(使用Constraint-Stream-API:
factory.from(Lesson.class)
.join(Lesson.class, equal(Lesson::getTimeslot, Lesson::getTimeslot))...
在Timeslot
类中,我已覆盖equals()
方法。在我看来,Joiners.equal似乎不使用此equals方法来比较时隙,因为我使用以下代码得到了不同的结果:
factory.from(Lesson.class).join(Lesson.class)
.filter((l,m) -> l.getTimeslot().equals(m.getTimeslot())
有人知道Joiners.equal
的比较依据吗?
[Joiners.equal
依赖于equals()
和hashCode()