Java 9 java.util.Objekti Dodaci

1. Uvod

Java.util.Objekti razred je dio Jave od verzije 1.7. Ova klasa pruža statičke korisne metode za objekte koji se mogu koristiti za obavljanje nekih svakodnevnih zadataka poput provjere jednakosti, null čekovi itd.

U ovom ćemo članku pogledati nove metode uvedene u java.util.Objekti razred u Javi 9.

2. The requireNonNullElse Metoda

Ova metoda prihvaća dva parametra i vraća prvi parametar ako nije null, drugi parametar inače. Ako su oba parametra null, baca NullPointerException:

privatni popis aMethodReturningNullList () {return null; } @Test javna praznina givenNullObject_whenRequireNonNullElse_thenElse () {Popis aList = Objects.requireNonNullElse (aMethodReturningNullList (), Collections.EMPTY_LIST); assertThat (aList, je (Collections.EMPTY_LIST)); } private List aMethodReturningNonNullList () {return List.of ("item1", "item2"); } @Test javna praznina givenObject_whenRequireNonNullElse_thenObject () {Popis aList = Objects.requireNonNullElse (aMethodReturningNonNullList (), Collections.EMPTY_LIST); assertThat (aList, je (List.of ("item1", "item2"))); } @Test (očekuje se = NullPointerException.class) javna praznina givenNull_whenRequireNonNullElse_thenException () {Objects.requireNonNullElse (null, null); }

3. Korištenje requireNonNullElseGet

Ova metoda je slična requireNonNullElse, osim toga drugi parametar je a java.util.function.Dobavljač sučelje koje omogućuje lijenu instancu pružene zbirke. The Dobavljač implementacija je odgovorna za vraćanje ne-null objekta kao što je prikazano u nastavku:

@Test javna praznina givenObject_whenRequireNonNullElseGet_thenObject () {Popis aList = Objects.requireNonNullElseGet (null, List :: of); assertThat (aList, je (List.of ())); }

4. Korištenje checkIndex

Ova se metoda koristi za provjeru je li indeks unutar zadane duljine. Vraća indeks ako 0 <= indeks <duljina. Inače, baca znak IndexOutOfBoundsException kako je prikazano dolje:

@Test javna praznina givenNumber_whenInvokeCheckIndex_thenNumber () {int length = 5; assertThat (Objects.checkIndex (4, dužina), je (4)); } @Test (očekuje se = IndexOutOfBoundsException.class) javna praznina givenOutOfRangeNumber_whenInvokeCheckIndex_thenException () {int length = 5; Objects.checkIndex (5, dužina); }

5. Korištenje checkFromToIndex

Ovom se metodom provjerava je li zadani raspon formiran od [fromIndex, toIndex) je unutar raspona koji tvori [0, dužina). Ako je podopseg valjan, tada vraća donju granicu kao što je prikazano dolje:

@Test javna praznina givenSubRange_whenCheckFromToIndex_thenNumber () {int length = 6; assertThat (Objects.checkFromToIndex (2, dužina, duljina), je (2)); } @Test (očekuje se = IndexOutOfBoundsException.class) javna praznina givenInvalidSubRange_whenCheckFromToIndex_thenException () {int length = 6; Objects.checkFromToIndex (2,7, dužina); }

Napomena: U matematici raspon predstavljen u obliku [a, b) označava da raspon uključuje a i isključuje b. [i] navode da je broj uključen i (i) navode da je broj isključen.

6. Korištenje checkFromIndexSize

Ova metoda je slična checkFromToIndex osim što umjesto davanja gornje granice pod-raspona pružamo veličinu i donju granicu pod-raspona.

Podopseg je, u ovom slučaju, [fromIndex, fromIndex + veličina) a ova metoda provjerava je li podopseg unutar raspona koji čine [0, dužina):

@Test javna praznina givenSubRange_whenCheckFromIndexSize_thenNumber () {int length = 6; assertThat (Objects.checkFromIndexSize (2,3, dužina), je (2)); } @Test (očekuje se = IndexOutOfBoundsException.class) javna praznina givenInvalidSubRange_whenCheckFromIndexSize_thenException () {int length = 6; Objects.checkFromIndexSize (2, 6, duljina); }

7. Zaključak

The java.util.Objekti klasa u JDK 9 obuhvaća nekoliko novih korisnih metoda. Također je ohrabrujuće jer se ova klasa usluga redovito ažurira od vremena kada je uvedena u Javi 7.

Kôd za ovaj članak nalazi se na GitHubu.