Я пытаюсь реализовать что-то вроде NurseRostering в примере, поэтому я сделал все то же самое, кроме классов в 'solver/drools & move' (также может кто-то объяснить, что они делают именно?).OptaPlanner ClassCastException в ComparatorSelectionSorter
Итак, моя проблема заключается в том, что я реализовал компараторы: EmployeeStrengthComparator и JobDifficultyComparator, они похожи на EmployeeStrengthComparator и ShiftAssignmentDifficultyComparator в примере NurseRostering.
Так я создал свои правила, мое решение, и начал решать, но я получаю эту ошибку:
Exception in thread "main" java.lang.ClassCastException: org.demo.DemoApp.domain.JobAssignment cannot be cast to org.demo.DemoApp.domain.Employee
at org.demo.DemoApp.domain.solver.EmployeeStrengthComparator.compare(EmployeeStrengthComparator.java:12)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
at java.util.TimSort.sort(TimSort.java:220)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at org.optaplanner.core.impl.heuristic.selector.common.decorator.ComparatorSelectionSorter.sort(ComparatorSelectionSorter.java:45)
at org.optaplanner.core.impl.heuristic.selector.value.decorator.SortingValueSelector.constructCache(SortingValueSelector.java:43)
at org.optaplanner.core.impl.heuristic.selector.common.SelectionCacheLifecycleBridge.phaseStarted(SelectionCacheLifecycleBridge.java:49)
at org.optaplanner.core.impl.phase.event.PhaseLifecycleSupport.firePhaseStarted(PhaseLifecycleSupport.java:39)
Я надеюсь, что кто-нибудь знает причины, где я ошибся, может предоставить больше информации \ Sources конечно, но я думаю, что причина довольно очевидна, потому что я очень новичок в этой структуре и мог пропустить что-то в конфигурациях.
UPD: так это было как:
@PlanningEntityCollectionProperty
@ValueRangeProvider(id = "employeeRange")
public List<JobAssignment> getJobAssignments() {
return jobAssignments;
}
[Сообщение об ошибке улучшено] (https://issues.jboss.org/browse/PLANNER-484) для 6.4.0.Beta1. –