Optaplanner Joiners.equal не использует .equals? - PullRequest
1 голос
/ 05 апреля 2020

Я определяю ограничение в моем проекте OptaPlanner (используя Constraint-Stream-API), начиная следующим образом:

factory.from(Lesson.class)
        .join(Lesson.class, equal(Lesson::getTimeslot, Lesson::getTimeslot))...

В классе Timeslot я переопределил equals() -метод. Мне кажется, однако, что Joiners.equal не использует этот метод равных для сравнения временных интервалов, потому что я получаю другой результат, используя следующий код:

 factory.from(Lesson.class).join(Lesson.class)
        .filter((l,m) -> l.getTimeslot().equals(m.getTimeslot())

Кто-нибудь знает, на каком основании Joiners.equal делает свое сравнение

1 Ответ

2 голосов
/ 06 апреля 2020

Joiners.equal полагается на equals() и hashCode(), оба из которых полностью заполняют контракт Java equals / hashCode, как определено в Java Language Spe c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...