Sto tentando di dichiarare e definire una mappa hash più grande in una volta. Questo è come lo faccio:Java 8: inizializzazione HashMap con espressioni lambda
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
Ma, quando cerco di usare le espressioni lambda nel corpo di put
, sto colpendo su Eclipse warrning/errore. Questo è il modo che uso lambda in HashMap:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0,() -> { return "nop"; });
put(1,() -> { return "nothing...."; });
}};
Eclipse sottolinea tutta la parte di lambda a partire da virgola prima. Messaggi di errore:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
Qualcuno sa che cosa sto facendo di sbagliato? L'inizializzazione tramite espressione lambda è consentita in HashMap
? Per favore aiuto.
Domanda interessante! +1 – fge
Compila in 'javac'. Sei sicuro che Java 8 sia abilitato per il tuo progetto? – axtavt
Sembra che tu stia compilando con un compilatore prima della versione 8 – Reimeus