Требуется перевести оператор switch
в лямбда-выражения.
Для этого нужно сделать Map(у)
с возможными командами, и в зависимости от символа сделать нужную операцию.
Вот моя неработающая попытка:
List<Operation> retValue2 = new ArrayList<>();
Map<String, Consumer<String>> activityMap = new HashMap<>();
Consumer<Integer> add = () -> {retValue2.add(new Operation(Operation.Type.ADD, +1));};
activityMap.put("+", add.accept());
Consumer<Integer> shift = () -> {retValue2.add(new Operation(Operation.Type.SHIFT, +1));};
activityMap.put(">", shift.accept());
Я пытался сделать это без Consumer, но я не понимаю, какой тип указать тогда в Map
.
После нескольких попыток, решил, что нужно прийти к этому
List<Operation> retValue2 = new ArrayList<>();
Map<String, ТУТ НУЖНО ЧТО-то вставить> activityMap = new HashMap<>();
activityMap.put("+", () -> retValue2.add(new Operation(Operation.Type.ADD, +1));
activityMap.put(">", () -> retValue2.add(new Operation(Operation.Type.SHIFT, +1));
Кажется вам нужно использовать интерфейс Runnable.
Пример:
public static void main(String[] args) {
List<String> retValue2 = new ArrayList<>();
Map<String, Runnable> activityMap = new HashMap<>();
activityMap.put("+", () -> retValue2.add("new Object()"));
activityMap.put(">", () -> retValue2.add("124"));
activityMap.forEach((key, value) -> value.run());
System.out.println(retValue2.toString());
}
Вывод в консоли:
[new Object(), 124]
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Все классы подсветились оранжевым и написано что нет SDKSDK подключил 1
Только осваиваю Spring и, вот такая задача - нужно осуществить поиск по разным параметрамПричем параметры все не обязательные, т
Подскажите, как реализовать эффект постепенно растущей линии на canvasВот простой пример на canvas