Java – Generics (Polski)

Reklamy

Byłoby miło, gdybyśmy mogli napisać pojedynczą metodę sortowania, która mogłaby sortować elementy w tablicy Integer, tablicy String lub tablica dowolnego typu obsługująca porządkowanie.

Metody ogólne i klasy generyczne języka Java umożliwiają programistom określenie zestawu powiązanych metod za pomocą jednej deklaracji metody lub za pomocą jednej deklaracji klasy pokrewnych typów.

Typy generyczne zapewniają również bezpieczeństwo typów w czasie kompilacji, które pozwala programistom wychwycić nieprawidłowe typy w czasie kompilacji.

Korzystając z koncepcji Java Generic, możemy napisać metodę ogólną do sortowania tablicy obiektów, a następnie wywołaj metodę ogólną z tablicami całkowitymi, podwójnymi tablicami, tablicami ciągów itd., aby posortować elementy tablicy.

Metody ogólne

Możesz pisać pojedyncza deklaracja metody ogólnej, która może wynosić ok wypełnione argumentami różnych typów. Na podstawie typów argumentów przekazanych do metody ogólnej kompilator odpowiednio obsługuje każde wywołanie metody. Poniżej przedstawiono zasady definiowania metod ogólnych –

  • Wszystkie deklaracje metod ogólnych mają sekcję parametru typu oddzieloną nawiasami ostrymi (< i >), który poprzedza zwracany typ metody (< E > w następnym przykładzie ).

  • Każda sekcja parametru typu zawiera co najmniej jeden parametr typu oddzielony przecinkami. Parametr typu, znany również jako zmienna typu, jest identyfikatorem określającym nazwę typu ogólnego .

  • Parametry typu mogą służyć do deklarowania zwracanego typu i pełnić rolę symboli zastępczych dla typów argumentów przekazanych do metody ogólnej, które są znane jako argumenty typu rzeczywistego.

  • Treść metody ogólnej jest zadeklarowana tak jak każda inna metoda. Zwróć uwagę, że parametry typu mogą reprezentować tylko typy referencyjne, a nie typy pierwotne (takie jak int, double i char).

Przykład

Poniższy przykład ilustruje, jak może wydrukować tablicę innego typu przy użyciu jednej metody Generic –

To da następujący wynik –

Wyjście

Array integerArray contains:1 2 3 4 5 Array doubleArray contains:1.1 2.2 3.3 4.4 Array characterArray contains:H E L L O

Parametry typu ograniczonego

Może się zdarzyć, że będziesz chciał ograniczyć rodzaje typów, które mogą być przekazywane do parametru typu. Na przykład metoda działająca na liczbach może chcą akceptować tylko wystąpienia klasy Number lub jej podklasy. Do tego służą parametry typu ograniczonego.

Aby zadeklarować parametr typu ograniczonego, należy podać nazwę parametru typu, a po niej słowo kluczowe extends, a po nim jego górna granica.

Przykład

Poniższy przykład ilustruje, w jaki sposób extends jest używane w ogólnym sensie do oznaczenia „rozszerzeń” (jak w klasach) lub „implementacji” (jak w interfejsach) . Ten przykład przedstawia metodę Generic zwracającą największy z trzech porównywalnych obiektów –

Daje to następujący wynik –

Wyjście

Max of 3, 4 and 5 is 5Max of 6.6,8.8 and 7.7 is 8.8Max of pear, apple and orange is pear

Klasy generyczne

Deklaracja klasy ogólnej wygląda jak deklaracja klasy nieogólnej, z tą różnicą, że po nazwie klasy następuje sekcja parametru typu.

Podobnie jak w przypadku klasy ogólnej metody, sekcja parametru typu klasy ogólnej może mieć jeden lub więcej parametrów typu oddzielonych przecinkami. Te klasy są znane jako klasy sparametryzowane lub typy sparametryzowane, ponieważ akceptują jeden lub więcej parametrów.

Przykład

Poniższy przykład ilustruje, jak możemy zdefiniować klasę ogólną –

To da następujący wynik –

Wyjście

Integer Value :10String Value :Hello World
Reklamy

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *