In JDK 1.7 È possibile creare un Collection
per, ad es. dire una HashMap
come questo:Creazione di una mappa attraverso una classe anonima con <>
private HashMap<String, String> map = new HashMap<>();
Con il diamante <>
alla fine.
Ma se io sono la creazione di una mappa come questa:
private static final HashMap<String, String> MAP = new HashMap<>() {{
put("something", "something");
}};
dal compilatore diamante dice che:
Cannot use ''<>'' with anonymous inner classes
devo usare: ... new HashMap<String, String>() {{....
per il codice per la compilazione.
Perché è così? Perché posso creare una mappa e usare diamond se sto creando solo una nuova istanza ma il codice non viene compilato se sto creando una mappa attraverso una classe anonima?
Scoperta interessante. Curioso me stesso. –
Non penso che sia duplicato - questa domanda sta chiedendo PERCHÉ. Le risposte all'altra domanda non dicono veramente perché Sun ha preso quella decisione, solo che non puoi farlo. –
@MrSpoon è in realtà la decisione di Oracle, non di Sun.: P – PermGenError