I'm trying to declare and define larger hash map at once. This is how I do it:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
But, when I try to use lambda expressions in body of put
, I'm hitting on eclipse warrning/error. This is how I use lambda in HashMap:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0, () -> { return "nop"; });
put(1, () -> { return "nothing...."; });
}};
Eclipse underlines whole part of lambda starting with comma before. Error messages:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
Does anybody know what am I doing wrong? Is initialization by lambda expression allowed in HashMap
? Please help.