Я пытаюсь объявить и определить большую хэш-карту сразу. Вот как я это делаю:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
Но, когда я пытаюсь использовать лямбда-выражения в теле put
, я нажимаю на warlning/error eclipse. Вот как я использую лямбда в HashMap:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0, () -> { return "nop"; });
put(1, () -> { return "nothing...."; });
}};
Eclipse подчеркивает всю часть лямбда, начиная с запятой. Сообщения об ошибках:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
Кто-нибудь знает, что я делаю неправильно? Является ли инициализация лямбда-выражением допустимой в HashMap
? Пожалуйста, помогите.