wiem, że mogę zadeklarować i zainicjować List
stosując podwójne szelki:Pokój inicjalizacji klamra z kolekcji zagnieżdżonych
// (1)
List<Object> myList = new ArrayList<object>(){{
add("Object1");
add("Object2");
}};
Ale chcę List
z <Map<Object,Object>>
:
// (2)
List<Map<Object,Object>> myList = new ArrayList<Map<Object,Object>>();
Jak mogę użyć podwójną klamrę inicjalizacja (zobacz (1)) z zagnieżdżonymi kolekcjami? Moim celem jest zadeklarowanie i zainicjowanie struktury danych w jednym wierszu.
Chciałbym również wiedzieć, czy przy stosowaniu podwójnego nawiasu występują pewne problemy, o których muszę wiedzieć.
Wystarczy użyć "normalnego" kodu inicjalizacyjnego; Inicjalizacja podwójnego nawiasu jest trudna do odczytania. Kod to WORM (Write Once, Read Many). Uwaga: jeśli jest to lista statyczna, użyj statycznego inicjalizatora. – fge
Dlaczego chcesz napisać taki kod? Czy pracujesz sam? – kolossus
Nie używaj "podwójnych nawiasów", ponieważ za każdym razem tworzysz niepotrzebną podklasę tablicy ArrayList. –