Ce este Generics în Java? - Un ghid pentru începători



Acest articol despre Generice în Java va oferi o scurtă perspectivă asupra a ceea ce este genericul Java și a diferitelor sale tipuri, împreună cu exemple.

Luați în considerare un exemplu în care trebuie să faceți o listă a viețuitoarelor dintr-o localitate. Nu contează dacă este vorba de o ființă umană, un animal sau o plantă. Tot ceea ce contează este un lucru viu. În acest caz, le-ați grupa pe toate ca „Lucruri Vii” și nu le-ați clasifica. În mod similar, atunci când trebuie să stocați unele date, ceea ce contează pentru dvs. este conținutul și nu tipul de date, și acolo utilizați Generics. Generice în este o caracteristică de limbaj care permite utilizarea tipurilor și metodelor generice.

Mai jos este lista subiectelor pe care le voi aborda în acest articol:





Ce este Generics în Java?

Generice este un termen care denotă un set de caracteristici ale limbajului legate de definirea și utilizarea tipurilor și metodelor generice. Metodele Java Generic diferă de metodele și tipurile de date obișnuite. Înainte de Generics, am folosit pentru a stoca orice tip de obiecte adică non-generice . Acum, Generics forțează programator pentru a stoca un anumit tip de obiecte.

Acum, că știți ce este Generics în Java, să mergem mai departe și să înțelegem de ce aveți nevoie de Java Generics.



De ce Java Generics?

Dacă te uiți la clase, atunci veți observa că majoritatea claselor iau parametrul / argumentul de tip Object. Practic, în această formă, pot lua orice tip Java ca argument și pot returna același obiect sau argument. Ei sunt în esență eterogen adică nu de un tip similar.

FrameworkHierarchy - Generice în Java - Edureka

Uneori, în aplicația Java, tipul de date al intrării nu este fix. Intrarea poate fi un întreg , la pluti sau . Pentru a aloca intrarea la a tipului de date corect, trebuiau efectuate verificări prealabile. În abordarea tradițională, după preluarea intrării, tipul de date al intrării a fost verificat și apoi a fost atribuit variabilei tipului de date corect. Când s-a folosit această logică, lungimea codului și timpul de execuție au fost mărite. Pentru a evita acest lucru, Au fost introduse generice . Când utilizați Generics, parametrii din cod sunt verificați automat la compilare și setează tipul de date în mod implicit. Deci, aici trebuie să aveți conceptul de generice în Java.



Acum că ați câștigat câteva informații despre Generics, să mergem mai departe și să vedem diferitele moduri în careGenericele pot fi aplicate codului sursă.

ce este sesiunea în java

Tipuri de Java Generics

Există 4 moduri diferite în care genericele pot fi aplicate în Java și sunt după cum urmează:

  1. Clasa de tip generic
  2. Interfață generică
  3. Metoda generică
  4. Constructor generic

Acum, să înțelegem cum pot fi aplicate generice pentru clasa de tip în profunzime.

1. Clasa de tip generic

Se spune că o clasă este generică dacă declară una sau mai multe variabile de tip. Aceste tipuri de variabile sunt cunoscute ca parametrii de tip ai . Să înțelegem acest lucru cu ajutorul unui exemplu. În exemplul de mai jos, voi crea o clasă cu o singură proprietate X iar tipul proprietății este un obiect.

class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

Aici, odată ce inițializați clasa cu un anumit tip, clasa trebuie utilizată numai cu acel tip special. De exemplu. Dacă doriți ca o instanță a clasei să dețină valoarea X de tipul „ Şir ', Atunci programatorul ar trebui să seteze și să obțină singurul tip. Deoarece am declarat tipul de proprietate obiectului, nu există nicio modalitate de a aplica această restricție. Un programator poate seta orice obiect și se poate aștepta de la orice tip de valoare de returnare obține metoda întrucât toate tipurile Java sunt subtipuri de clasă.

Pentru a aplica acest tip de restricție, putem folosi generice după cum urmează:

clasa Genericclass {// T înseamnă „Tipul” privat T x public void set (T x) {this.x = x} public T get () {return x}}

Acum puteți fi siguri că clasa nu va fi utilizată greșit cu tipuri greșite. Un exemplu simplu de' Clasa generică ”Arată așa cum se arată mai jos:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Acest lucru va ridica eroarea de timp de compilare

Deci, așa funcționează. Acestanalogia este valabilă și pentru interfață. Să analizăm rapid un exemplu pentru a înțelege modul în care informațiile de tip generice pot fi utilizate în interfețe în java.

2. Interfață generică

Un se referă la tipurile de date abstracte. Ei permit să fie manipulate independent de detaliile reprezentării lor. De asemenea, formează o ierarhie în limbi. Să înțelegem cum tipul generic poate fi aplicat interfețelor din Java.

// Interfață generică de definiție a interfeței GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // O clasă de implementare a clasei de interfață generică Genericclass implementează GenericInterface {public Integer PerformExecution (String x) {// cod de execuție} public String ReverseExecution ( Număr întreg x) {// cod de execuție}}

Sper că ați reușit să înțelegeți cum se poate aplica Generics la clasa de tip și la interfețe. Acum, să aprofundăm acest articol și să înțelegem modul în care este util pentru metode și constructori.

3. Metode generice

Metodele generice sunt mult similare claselor generice. Ele diferă între ele într-un singur aspect pe care informațiile privind domeniul de aplicare sau tipul sunt numai în cadrul metodei. Metodele generice își introduc proprii parametri de tip.

implementați coada prioritară c ++

Să înțelegem acest lucru cu un exemplu. Mai jos este un exemplu de metodă generică care poate fi utilizată pentru a găsi toate aparițiile parametrilor de tip într-o listă de variabile.

public static int countAllOccurrences (T [] list, element T) {int count = 0 if (element == nul) {for (T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) if (element.equals (listElement)) count ++} return count}

Dacă treci o listă de Șir de căutare în această metodă, va funcționa bine. Dar dacă încercați să găsiți un număr în lista String, acesta va da o eroare de timp de compilare.

Această analogie este similară și cu constructorul. Să luăm un exemplu pentru constructorul generic și să înțelegem cum funcționează.

4. Constructor generic

Pentru constructor este un bloc de cod care inițializează obiectul nou creat. A constructor seamănă cu o metodă de instanță în J ava dar nu este o metodă, deoarece nu are un tip de returnare. Constructorul are același nume ca și clasa și arată așa în J ava cod. Acum să luăm un exemplu și să înțelegem cum funcționează.

clasă Dimensiune {lungime T privată lățime T privată înălțime T privată // Constructor public Dimensiune publică (lungime T, lățime T, înălțime T) {super () this.length = length this.width = width this.height = height}}

În exemplul de mai sus, constructorul clasei de dimensiuni are informațiile de tip. Deci, puteți avea o instanță de dimensiune cu toate atributele de un singur tip. Deci, astfel puteți folosi constructori de tip generice. Sper că ați înțeles tipurile de generice din Java.

Acum să mergem mai departe și să vedem avantajele Generics în Java.

Avantajele genericelor în Java

1. Reutilizarea codului

Puteți compune o strategie sau o clasă sau un o dată și utilizați pentru orice tip sau orice fel de care aveți nevoie.

diferența dintre extindere și implementare

2. Distribuirea tipurilor individuale nu este necesară

Practic, ați recuperat informații de la de fiecare dată, trebuie să îl tipăriți. Tipografierea la fiecare sarcină de recuperare este o migrenă majoră. Pentru a eradica această abordare, au fost introduse generice.

3. Implementarea unui algoritm non-generic

Poate calcula algoritmii care funcționează pe diferite tipuri de articole care sunt sigure de asemenea.

Totul a fost despre avantajele Java Generics. Cu aceasta, ajungem la sfârșitul acestui articol despre Generics în Java. Sper că l-ați găsit informativ și v-ați ajutat să înțelegeți Java Generics.

Verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs., pentru a deveni o afară de întrebările de interviuri java, venim cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui „Generice în Java ' articol și ne vom contacta cât mai curând posibil.