optaplanner valueSelector filterClass не может быть вызван для фильтрации нулевого значения - PullRequest
0 голосов
/ 10 февраля 2019

Согласно документам

Планировщик автоматически добавит значение NULL в диапазон значений

i Распечатав переменную планирования в VariableListener, некоторые из значений NULL будут назначеныв плановую переменную.

В моем случае я пытаюсь отфильтровать ноль из значения выбора.Я попытался использовать класс фильтра для valueSelector для фильтрации нулевого значения.ref: https://docs.optaplanner.org/7.12.0.Final/optaplanner-docs/html_single/index.html#filteredValueSelection НО класс фильтра не может быть вызван.Класс фильтра для выбора объектов работает нормально.

Есть ли другой способ удалить нулевое значение из диапазона значений по умолчанию или как создать фильтр для выбора значения?

код:

public class NumberSelectionFilter implements SelectionFilter<BoxAssignment,Integer> {

 @Override
 public boolean accept(ScoreDirector<BoxAssignment> scoreDirector, Integer number) {
   System.out.println("print out filter");
     return true;
 }
}

xml config:

<localSearch>
       <unionMoveSelector>
      <changeMoveSelector>    
            <valueSelector>
        <filterClass>org.optaplanner.examples.box.domain.solver.NumberSelectionFilter</filterClass>
         </valueSelector>   
      </changeMoveSelector>
    </unionMoveSelector>
  </localSearch>
...