HashMap
を宣言しようとしています。これは文字列を受け取り、Callable
を返します。HashMap内でラムダを宣言する正しい方法
私が持っている:
Map<String, Callable<String>> commands = new HashMap<>();
commands.put("get", (String item) -> get(item));
GETはvoidを返す関数です。
しかし、私はなぜそれが文字列を返すように機能を期待している
"Bad return type in Lambda expression: Void cannot be converted into a string."
を取得していますか?私はラムダにString
を渡し、void
を返そうとしています。
これはコンパイルされません。 – Mena
うわー、それは速かった。ありがとう。それは「電話」よりも「受け入れる」と呼ばれています。私はJavaを学んでいますが、Pythonに慣れていたので、機能的なパラダイムが私を壁に追いやっています。 – bencollier
@Menaそれは、 'get()'がどのように定義されているかによって決まりますが、質問には指定されていません。例えば、あなたが 'public static void get(String g){}'を持っている場合、それはコンパイルされます。私はちょうどそれをテストした。 – Eran