Collections.emptyList () vs. nová inštancia zoznamu
1. Úvod
V tomto krátkom návode si ukážeme rozdiely medzi Collections.emptyList () a nová inštancia zoznamu.
2. Nezmeniteľnosť
Základný rozdiel medzi java.util.Collections.emptyList () a nový zoznam napr. nový ArrayList () je nemennosť.
Collections.emptyList () vráti zoznam (java.util.Collections.EmptyList), ktoré nie je možné upraviť.
Pri vytváraní novej inštancie zoznamu ju môžete upraviť v závislosti od implementácie:
@Test public void givenArrayList_whenAddingElement_addsNewElement () {List mutableList = new ArrayList (); mutableList.add ("test"); assertEquals (mutableList.size (), 1); assertEquals (mutableList.get (0), "test"); } @Test (očakáva sa = UnsupportedOperationException.class) public void givenCollectionsEmptyList_whenAdding_throwsException () {List immutableList = Collections.emptyList (); immutableList.add ("test"); }
3. Vytváranie objektov
Collection.emptyList () vytvorí novú inštanciu prázdneho zoznamu iba raz, ako je uvedené v zdrojovom kóde:
verejný statický konečný zoznam EMPTY_LIST = nový EmptyList (); public static final List emptyList () {return (List) EMPTY_LIST; }
4. Čitateľnosť
Ak chcete explicitne vytvoriť prázdny zoznam, potom Collections.emptyList () vyjadril pôvodný zámer lepšie napr. nový ArrayList ().
5. Záver
V tomto bodovom článku sme sa zamerali na rozdiely medzi Collections.emptyList () a nová inštancia zoznamu.
Celý zdrojový kód je ako vždy k dispozícii na GitHub.