/** * Wykorzystanie typów generycznych * @author kodatnik.blogspot.com */ class Pudelko <T> { // referencja do obiektu typu T private T element; // konstruktor klasy public Pudelko(T element) { this.element = element; } // metoda zwraca referencję do przechowywanego elementu public T pobierzElement() { return element; } }Tworząc obiekt klasy Pudelko musimy określić jakiego typu dane będą w nim przechowywane. Przykładowe wykorzystanie klasy Pudelko.
public class TestPudelka { public static void main(String args[]) { // tworzymy trzy pudełka dla różnych typów danych (String, Integer oraz Double) Pudelko<String> p1 = new Pudelko<String>("Ala ma kota"); Pudelko<Integer> p2 = new Pudelko<Integer>(12); Pudelko<Double> p3 = new Pudelko<Double>(24.76); // sprawdzamy zawartość każdego pudełka System.out.println (p1.pobierzElement()); int wartosc = p2.pobierzElement() + 3; System.out.println (wartosc); System.out.println (p3.pobierzElement()); } }Wynik działania aplikacji (pudełko pierwsze przechowuje łańcuchy tekstowe, drugie liczby całkowite, a trzecie liczby rzeczywiste).
Ala ma kota 15 24.76Większość klas dostarczanych z Javą wykorzystuje typy generyczne. Są to zazwyczaj klasy będące "pojemnikami" dla innych obiektów (tzw. kolekcje). Na przykład klasy LinkedList, Array, Stack, Vector, TreeMap itp.
Typy generyczne przeznaczone są tylko do typów obiektowych, nie można ich użyć do typów prymitywnych.
13 Komentarzy - Typy generyczne
Krótko i na temat :)
Super wpis :)
Pozdrawiam :)
pozdrawiam serdecznie i składam najserdeczniejsze podziekowania.
Konkretnie - dobrze, dzięki.
Myślę, że warto również wspomnięc o samym zapisie informującym o wystąpieniu typu generycznego.
Ogólnie praktycznie wszystko co jest poprawnym składniowo identyfikatorem z punktu widzenia javy może znaleźć się pomiędzy "<>". Przy czym warto moim zdaniem trzymać się pewnych konwencji które uczynią kod bardziej czytelnym.
I tak zapis (E - Element) informuje że klasa jest kolekcją zawierającą elementy () określonego typu.
Inną powszechnie stosowaną konwencją jest (T - typ) która mówi o typie, czyli czymś co nie jest elementem kolekcji.
Dla przytoczonego przykładu lepiej by było skorzystać z zapisu class Pudelko , co dodatkowo wnosi informację o klasie NIE BĘDĄCEJ listą i operującej na dowolnym typie.
@Łukasz: Masz całkowitą rację, poprawiłem. Gwoli wyjaśnienia jako identyfikatory typów generycznych wykorzystuje się zazwyczaj litery:
E - element (głównie w kolekcjach)
K - klucz
N - liczba
T - typ
V - wartość
S,U,V itd. - kolejne typy
Prosto i na temat. Brawo.
Oj, przydało się na programowanie, dzięki za konkretne wyjaśnienie na przykładach :)
Super, wielkie dzięki :D
Klasy Vector się już nie używa ;D.
Fajny ten post!
Ja tez lubię tworzyć strony www!
Ktoś tu ma talent do programowania!
teraz juz rozumiem
Podesłałam bloga chłopakowi ;)
dobrze wytłumaczone
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)