Java 9 java.util. Tárgyak a kiegészítésekről

1. Bemutatkozás

A java.util.Tárgyak osztály az 1.7 verzió óta a Java része. Ez az osztály statikus segédprogramokat biztosít az objektumok számára, amelyek felhasználhatók mindennapi feladatok elvégzésére, például az egyenlőség ellenőrzésére, nulla ellenőrzések stb.

Ebben a cikkben megvizsgáljuk a java.util.Tárgyak osztály a Java 9-ben.

2. A requiredNonNullElse Módszer

Ez a módszer két paramétert fogad el, és ha nem, akkor az első paramétert adja vissza nulla, a második paraméter egyébként. Ha mindkét paraméter igen nulla, dob NullPointerException:

privát lista aMethodReturningNullList () {return null; } @Test public void givenNullObject_whenRequireNonNullElse_thenElse () {List aList = Objects.requireNonNullElse (aMethodReturningNullList (), Collections.EMPTY_LIST); assertThat (aList, van (Gyűjtemények.EMPTY_LIST)); } privát lista 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 (várható = NullPointerException.class) public void givenNull_whenRequireNonNullElse_thenException () {Objects.requireNonNullElse (null, null); }

3. Használata requiredNonNullElseGet

Ez a módszer hasonló a requiredNonNullElse, kivéve azt a második paraméter a java.util.function.Supplier felület, amely lehetővé teszi a rendelkezésre álló gyűjtemény lusta példányosítását. A Támogató a megvalósítás feladata egy nem null objektum visszaküldése az alábbiak szerint:

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

4. Használata checkIndex

Ezzel a módszerrel ellenőrizhető, hogy az index a megadott hosszúságon belül van-e. Visszaadja az indexet, ha 0 <= index <hossz. Különben dob egy IndexOutOfBoundsException az alábbiak szerint:

@Test public void givenNumber_whenInvokeCheckIndex_thenNumber () {int length = 5; assertThat (Objects.checkIndex (4, hossz), (4)); } @Test (várható = IndexOutOfBoundsException.class) public void givenOutOfRangeNumber_whenInvokeCheckIndex_thenException () {int length = 5; Objects.checkIndex (5, hossz); }

5. Használata checkFromToIndex

Ezzel a módszerrel ellenőrizzük, hogy az adott résztartomány az [fromIndex, toIndex] által alkotott tartományba esik [0, hossz). Ha az altartomány érvényes, akkor az alsó határt adja vissza az alábbiak szerint:

@Test public void givenSubRange_whenCheckFromToIndex_thenNumber () {int length = 6; assertThat (Objects.checkFromToIndex (2, hossz, hossz), (2)); } @Test (várható = IndexOutOfBoundsException.class) public void givenInvalidSubRange_whenCheckFromToIndex_thenException () {int length = 6; Objects.checkFromToIndex (2,7, hossz); }

Megjegyzés: A matematikában az [a, b) alakban ábrázolt tartomány azt jelzi, hogy a tartomány magában foglalja az a-t és kizárja a b-t. [és] állítsa, hogy a szám szerepel, és (és) kijelenti, hogy a szám kizárt.

6. Használata checkFromIndexSize

Ez a módszer hasonló a checkFromToIndex azzal a különbséggel, hogy a résztartomány felső határának megadása helyett a résztartomány méretét és alsó határát adjuk meg.

Az altartomány ebben az esetben az [fromIndex, fromIndex + méret) és ez a módszer ellenőrzi, hogy az altartomány belül van-e [0, hossz):

@Test public void givenSubRange_whenCheckFromIndexSize_thenNumber () {int length = 6; assertThat (Objects.checkFromIndexSize (2,3, hossz), (2)); } @Test (várható = IndexOutOfBoundsException.class) public void givenInvalidSubRange_whenCheckFromIndexSize_thenException () {int length = 6; Objects.checkFromIndexSize (2, 6, hossz); }

7. Következtetés

A java.util.Tárgyak osztály a JDK 9-ben kevés új hasznossági módszert fed le. Azért is biztató, mert ezt a szolgáltatási osztályt a Java 7 bevezetése óta rendszeresen frissítik.

A cikk kódja a GitHub oldalon található.


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