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 语言规范