generice Java
Ar fi frumos dacă am putea scrie o metodă de sortare, care pot sorta elemente Integer matrice, o matrice de siruri de caractere sau o matrice de orice tip care menține ordinea.
Generice oferă, de asemenea de siguranță de tip la momentul compilării, care permite programatorilor pentru a prinde tipuri invalide la momentul compilarii.
Folosind conceptul Java Generic, am putea scrie o metodă generică pentru sortarea o serie de obiecte, și apoi apela o metodă generică cu matrice întregi, matrice dublu, matrice de coarde, și așa mai departe, pentru a sorta matrice.
Metode generale:
Puteți scrie o declarație comună a metodei care poate fi apelată cu argumente de diferite tipuri. Pe baza tipurilor de argumentele transmise în metoda generală, compilatorul procesează fiecare apel de metodă în mod corespunzător. Mai jos sunt regulile de determinare a metodelor generice:
Fiecare secțiune a parametrului stil cuprinde unul sau mai mulți parametri de tip, separate prin virgulă. Tip de parametru, de asemenea, cunoscut sub numele de tip variabilă este un identificator care specifică tipul comun nume.
Corpul unei metode generice este declarată ca orice altă metodă. Vă rugăm să rețineți că parametrii de tip poate fi doar un tip de referință, nu tipuri primitive (de exemplu, INT, dublu și semi-cocs).
Următorul exemplu arată cum putem imprima o serie de tipuri diferite, cu o singură metodă universală:
Acest lucru va produce următorul rezultat:
Setări sonerie Tip:
Pot exista momente când doriți să restricționați tipurile de tipuri care sunt permise pentru a trece într-un parametru de tip. De exemplu, o metodă care funcționează pe numere ar putea avea nevoie doar să ia o copie a problemei sau subclasele sale. Aceasta este ceea ce a limitat setările de tip pentru.
Pentru a declara un tip limitat parametru, o listă de tipul de numele parametrului urmat de cuvinte cheie se execută, și apoi limita superioară.
Următorul exemplu ilustrează modul în care utilizarea se extinde în sens general, pentru a se referi fie la „răspândirea“ (ca în clase) sau „next“ (în interfețe). Acest exemplu este o metodă generică pentru a reveni cea mai mare dintre cele trei comparabilele:
Acest lucru va produce următorul rezultat:
clase generale:
Declarația arată ca clasă generală de declarare clasa non-generic, cu excepția faptului că numele clasei ar trebui să fie o secțiune de tip parametru.
Ca și în cazul universală secțiunea metode parametru de tip clasă generică poate avea unul sau mai mulți parametri de tip virgulă. Aceste clase sunt cunoscute ca clase parametrizate sau tipuri parametrizate, deoarece acestea iau unul sau mai mulți parametri.
Următorul exemplu arată cum putem defini o clasă generică:
Acest lucru va produce următorul rezultat: