Я пытаюсь объявить HashMap
, который возьмет строку и вернет Callable
.Правильный способ объявления лямбда внутри HashMap
у меня есть:
Map<String, Callable<String>> commands = new HashMap<>();
commands.put("get", (String item) -> get(item));
где прибудет это функция, которая возвращает ничтожной.
Но я получаю
"Bad return type in Lambda expression: Void cannot be converted into a string."
Почему ожидает функция возвращает строку? Я хочу передать лямбда a String
и получить void
назад.
Это не скомпилируется. – Mena
Вау, это было быстро. Благодарю. И он называется «принять», а не «позвонить», верно? Я изучаю Java, но использую Python, поэтому функциональная парадигма подталкивает меня к стене. – bencollier
@Mena Это зависит от того, как определяется 'get()', который не задан в вопросе. Если, например, у вас есть 'public static void get (String g) {}', он компилируется. Я просто протестировал его. – Eran