У меня есть Java
enum
:
public enum ConflictResolutionStrategy {
softResolve,
hardResolve,
}
Я хочу назвать его как ConflictResolutionStrategy.hardResolve.apply(case1, case2)
.
Оба case1
и case2
объекты одного типа,apply
в моем случае ничего не должно возвращать.
Основная идея этого дизайна.Создание Strategy
шаблона проектирования и разрешение конфликтов на основе заданного значения enum
.
Я не могу найти подобные вопросы в StackOveflow, даже простой поиск дает мне массу похожих случаев, которые не решают моинепосредственно.
Я попробовал следующее:
public enum ConflictResolutionStrategy {
softResolve ((CaseType case1, CaseType case2) -> case1.update(case2)),
hardResolve,
}
Данная версия не компилируется.
Я попробовал другое решение:
public enum ConflictResolutionStrategy {
softResolve,
hardResolve {
public void apply(CaseType case1, CaseType case2) {
case1.update(case2);
}
},
}
Второе решение, работает нормально, но требует слишком много кода.