Java 9 java.util.Prírastky objektov

1. Úvod

Objekt java.util.Objects triedy je súčasťou Javy od verzie 1.7. Táto trieda poskytuje statické obslužné metódy pre objekty, ktoré možno použiť na vykonávanie niektorých bežných úloh, ako je kontrola rovnosti nulový kontroly a pod.

V tomto článku sa pozrieme na nové metódy zavedené v java.util.Objects triedy v Jave 9.

2. The requireNonNullElse Metóda

Táto metóda akceptuje dva parametre a vráti prvý parameter, ak nie je nulový, druhý parameter inak. Ak sú oba parametre nulový, hádže NullPointerException:

private List aMethodReturningNullList () {return null; } @Test public void givenNullObject_whenRequireNonNullElse_thenElse () {List aList = Objects.requireNonNullElse (aMethodReturningNullList (), Collections.EMPTY_LIST); assertThat (aList, je (Collections.EMPTY_LIST)); } private List aMethodReturningNonNullList () {return List.of ("item1", "item2"); } @Test public void givenObject_whenRequireNonNullElse_thenObject () {List aList = Objects.requireNonNullElse (aMethodReturningNonNullList (), Collections.EMPTY_LIST); assertThat (aList, is (List.of ("item1", "item2"))); } @Test (očakáva sa = NullPointerException.class) public void givenNull_whenRequireNonNullElse_thenException () {Objects.requireNonNullElse (null, null); }

3. Používanie requireNonNullElseGet

Táto metóda je podobná ako v requireNonNullElse, okrem toho druhým parametrom je a java.util.function.Supplier rozhranie, ktoré umožňuje lenivú inštanciu poskytnutej zbierky. The Dodávateľ implementácia je zodpovedná za vrátenie nenulového objektu, ako je uvedené nižšie:

@Test public void givenObject_whenRequireNonNullElseGet_thenObject () {List aList = Objects.requireNonNullElseGet (null, List :: of); assertThat (aList, is (List.of ())); }

4. Používanie checkIndex

Táto metóda sa používa na kontrolu, či je index v rámci danej dĺžky. Vráti index, ak 0 <= index <dĺžka. Inak to hodí IndexOutOfBoundsException ako je uvedené nižšie:

@ Test public void givenNumber_whenInvokeCheckIndex_thenNumber () {int dĺžka = 5; assertThat (Objects.checkIndex (4, dĺžka), je (4)); } @Test (očakáva sa = IndexOutOfBoundsException.class) verejné neplatné danéOutOfRangeNumber_whenInvokeCheckIndex_thenException () {int dĺžka = 5; Objects.checkIndex (5, dĺžka); }

5. Používanie checkFromToIndex

Táto metóda sa používa na kontrolu, či daný subrozsah tvorí [fromIndex, toIndex) je v rozmedzí tvorenom [0, dĺžka). Ak je čiastkový rozsah platný, vráti spodnú hranicu, ako je uvedené nižšie:

@Test public void givenSubRange_whenCheckFromToIndex_thenNumber () {int dĺžka = 6; assertThat (Objects.checkFromToIndex (2, dĺžka, dĺžka), je (2)); } @Test (očakáva sa = IndexOutOfBoundsException.class) verejné neplatné danéInvalidSubRange_whenCheckFromToIndex_thenException () {int dĺžka = 6; Objects.checkFromToIndex (2,7, dĺžka); }

Poznámka: V matematike rozsah vyjadrený vo forme [a, b) označuje, že rozsah je vrátane a bez b. [a] uvedú, že číslo je zahrnuté, a (a) budú vylúčené.

6. Používanie checkFromIndexSize

Táto metóda je podobná ako v checkFromToIndex okrem toho, že namiesto poskytnutia hornej hranice podoblasti uvádzame veľkosť a dolnú hranicu podoblasti.

Podrozsah je v tomto prípade [fromIndex, fromIndex + veľkosť) a táto metóda kontroluje, či je subrozsah v rozmedzí tvorenom [0, dĺžka):

@Test public void givenSubRange_whenCheckFromIndexSize_thenNumber () {int dĺžka = 6; assertThat (Objects.checkFromIndexSize (2,3, dĺžka), je (2)); } @Test (očakáva sa = IndexOutOfBoundsException.class) verejné neplatné danéInvalidSubRange_whenCheckFromIndexSize_thenException () {int dĺžka = 6; Objects.checkFromIndexSize (2, 6, dĺžka); }

7. Záver

The java.util.Objects triedy v JDK 9 pokrýva niekoľko nových užitočných metód. Je to tiež povzbudivé, pretože táto trieda služieb bola od doby, kedy bola uvedená do Java 7, pravidelne aktualizovaná.

Kód tohto článku nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found