Optaplanner Joiners.equal 没有使用 .equals?
Optaplanner Joiners.equal not using .equals?
我在我的 OptaPlanner 项目中定义了一个约束(使用 Constraint-Stream-API),从以下方式开始:
factory.from(Lesson.class)
.join(Lesson.class, equal(Lesson::getTimeslot, Lesson::getTimeslot))...
在 Class 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()
都满足 Java equals/hashCode 合同的定义通过 Java 语言规范
我在我的 OptaPlanner 项目中定义了一个约束(使用 Constraint-Stream-API),从以下方式开始:
factory.from(Lesson.class)
.join(Lesson.class, equal(Lesson::getTimeslot, Lesson::getTimeslot))...
在 Class 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()
都满足 Java equals/hashCode 合同的定义通过 Java 语言规范