Это просто еще один пример, но я написал следующую строку кода:
@Override public Map<Action, Promise<Boolean>> actOnResults() throws Exception {
return Collections.singletonMap(Action.UPDATE_DATABASE, saver.save(results));
}
обратите внимание на @Override
. Интерфейс в целом может принимать карты многих вещей; этот конкретный экземпляр просто всегда возвращает карту, содержащую одну вещь. Также обратите внимание, что ключом к карте является Enum. Таким образом, карты никогда не должны быть большими, они просто должны содержать результаты тех действий, которые указаны. В моем реальном примере есть до 5 действий, и этот экземпляр использует только одно из них.
Чтобы быть полным, EnumSet
или EnumMap
часто уместны в этих случаях, но они все еще досадно многословны по сравнению с кодом выше.