Mikä on Generics Java -ohjelmassa? - Aloittelijan opas

Tämä artikkeli Java-generiikoista antaa lyhyen oivalluksen siitä, mikä on java-geneerinen tuote ja sen erilaiset tyypit, sekä esimerkkejä.

Ajattele esimerkkiä, jossa sinun on tehtävä luettelo paikkakunnan elävistä asioista. Ei ole väliä onko kyseessä ihminen, eläin tai kasvi. Ainoa asia on elävä asia. Tässä tapauksessa ryhmittäisit ne kaikki 'Eläviksi' eikä luokitella niitä. Vastaavasti, kun joudut tallentamaan joitain tietoja, sinulle tärkeätä on sisältö eikä tietotyyppi, ja sinä käytät Genericsia. Geneeriset aineet on kieliominaisuus, joka sallii yleisten tyyppien ja menetelmien käytön.

Alla on luettelo aiheista, joita käsittelen tässä artikkelissa:





Mikä on Generics Java -ohjelmassa?

Yleiset on termi, joka tarkoittaa joukkoa kieliominaisuuksia, jotka liittyvät yleisten tyyppien ja menetelmien määrittelyyn ja käyttöön. Java Generic -menetelmät eroavat tavallisista tietotyypeistä ja menetelmistä. Ennen Genericsia käytimme tallentaa minkä tahansa tyyppisiä esineitä, ts. ei-yleinen . Nyt Generics pakottaa ohjelmoija tallentaa tietyntyyppisiä esineitä.

Nyt kun tiedät mikä on Generics Java -ohjelmassa, siirrytään eteenpäin ja ymmärretään miksi tarvitset Java Generics -palvelua.



Miksi Java Generics?

Jos katsot luokat, niin huomaat, että useimmat luokat ottavat parametrin / argumentin tyypin Object. Pohjimmiltaan tässä muodossa he voivat ottaa minkä tahansa Java-tyypin argumenttina ja palauttaa saman objektin tai argumentin. Ne ovat olennaisesti heterogeeninen ts. ei saman tyyppisiä.

FrameworkHierarchy - Generics in Java - Edureka

Joskus Java-sovelluksessa syötteen tietotyyppi ei ole kiinteä. Tulo voi olla kokonaisluku , kellua tai . Tulon osoittamiseksi oikean tietotyypin, ennakkotarkastukset oli suoritettava. Perinteisessä lähestymistavassa syötteen ottamisen jälkeen tarkistettiin syötteen tietotyyppi ja osoitettiin sitten oikean tietotyypin muuttujalle. Kun tätä logiikkaa käytettiin, koodin pituutta ja suoritusaikaa pidennettiin. Tämän välttämiseksi Geneeriset lääkkeet otettiin käyttöön . Kun käytät Generics-ohjelmaa, koodin parametrit tarkistetaan automaattisesti kääntämisajankohtana ja se asettaa oletusarvoisesti tietotyypin. Joten tässä tarvitaan Java-käsitteen geneerisiä aineita.



milloin käyttää tätä. java

Nyt kun olet saanut oivalluksia Generics-tuotteista, siirrytään eteenpäin ja tarkastellaan erilaisia ​​tapojaGeneerisiä aineita voidaan käyttää lähdekoodiin.

Java Generics -tyypit

Generics-sovelluksiin voidaan soveltaa Java-tilassa 4 erilaista tapaa:

  1. Yleinen tyyppiluokka
  2. Yleinen käyttöliittymä
  3. Yleinen menetelmä
  4. Yleinen rakentaja

Ymmärretään nyt, kuinka geneerisiä aineita voidaan soveltaa tyyppiluokkaan perusteellisesti.

1. Yleinen tyyppiluokka

Luokan sanotaan olevan yleinen, jos se ilmoittaa yhden tai useamman tyyppimuuttujan. Nämä muuttujatyypit tunnetaan nimellä . Ymmärretään tämä esimerkin avulla. Seuraavassa esimerkissä luon luokan, jolla on yksi ominaisuus x ja ominaisuuden tyyppi on esine.

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

Tässä, kun olet alustanut luokan tietyllä tyypillä, luokkaa tulisi käyttää vain kyseisen tyypin kanssa. Esim. Jos haluat, että yksi luokan esiintymä pitää arvon x tyypin ” Merkkijono ', Sitten ohjelmoijan tulisi asettaa ja saada ainoa tyyppi. Koska olen ilmoittanut ominaisuuden tyypiksi Object, ei ole mitään keinoa panna tätä rajoitusta täytäntöön. Ohjelmoija voi asettaa minkä tahansa objektin ja odottaa minkä tahansa paluuarvotyypin get-menetelmä koska kaikki Java-tyypit ovat luokassa.

Tämäntyyppisten rajoitusten noudattamiseksi voimme käyttää geneerisiä aineita seuraavasti:

class Genericclass {// T tarkoittaa 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

Nyt voit olla varma, että luokkaa ei käytetä väärin väärillä tyypeillä. Yksinkertainen esimerkki' Yleinen luokka ”Näyttää seuraavalta:

Genericclass-ilmentymä = new Genericclass () instance.set ('Edureka') instance.set (10) // Tämä nostaa kääntöaikavirhettä

Joten se toimii. Tämäanalogia pätee myös käyttöliittymään. Katsotaanpa nopeasti esimerkki ymmärtääksemme, kuinka geneerisiä tietoja voidaan käyttää Java-käyttöliittymissä.

2. Yleinen käyttöliittymä

An viittaa abstrakteihin tietotyyppeihin. He sallivat manipuloida edustuksensa yksityiskohdista riippumatta. Lisäksi ne muodostavat hierarkian vuonna Kieli (kielet. Ymmärretään, kuinka yleistä tyyppiä voidaan soveltaa Java-käyttöliittymiin.

// Generic Interface Definition Interface GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Luokka, joka toteuttaa yleisen käyttöliittymäluokan Genericclass toteuttaa GenericInterface {public Integer PerformExecution (String x) {// suorituskoodi} public String ReverseExecution ( Kokonaisluku x) {// suorituskoodi}}

Toivon, että pystyit ymmärtämään, miten Genericsia voidaan soveltaa tyypin luokkaan ja rajapintoihin. Kaivetaan nyt syvemmälle tähän artikkeliin ja ymmärretään, kuinka siitä on hyötyä menetelmille ja rakentajille.

3. Yleiset menetelmät

Geneeriset menetelmät ovat paljon samanlaisia ​​kuin geneeriset luokat. Ne eroavat toisistaan ​​vain yhdellä aspektilla, jonka laajuus- tai tyyppitiedot ovat vain menetelmän sisällä. Yleisillä menetelmillä otetaan käyttöön omat tyypin parametrit.

Ymmärretään tämä esimerkillä. Alla on esimerkki yleisestä menetelmästä, jota voidaan käyttää kaikkien tyyppiparametrien esiintymien löytämiseen muuttujaluettelosta.

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

Jos välität luettelon Merkkijono etsiä tällä menetelmällä, se toimii hyvin. Mutta jos yrität löytää numeron merkkijonoluettelosta, se antaa kääntöaikavirheen.

kuinka luoda satunnainen merkkijono java

Tämä analogia on samanlainen kuin rakentaja. Otetaan esimerkki yleiselle rakentajalle ja ymmärretään, miten se toimii.

4. Yleinen rakentaja

Rakentajalle on koodilohko, joka alustaa uuden luodun objektin. A rakentaja muistuttaa J: n esiintymämenetelmää ava mutta se ei ole menetelmä, koska sillä ei ole palautustyyppiä. Rakentaja on sama nimi kuin luokassa ja näyttää tältä J: ssä ava koodi. Otetaan nyt esimerkki ja ymmärretään, miten se toimii.

luokka Ulottuvuus {yksityinen T pituus yksityinen T leveys yksityinen T korkeus // Yleinen rakentaja julkinen ulottuvuus (T pituus, T leveys, T korkeus) {super () this.pituus = pituus this.width = leveys this.height = korkeus}}

Edellä olevassa esimerkissä Dimension-luokan konstruktorilla on tyyppitiedot. Joten sinulla voi olla ulottuvuus, joka sisältää kaikki vain yhden tyypin attribuutit. Joten näin voit käyttää geneerisiä tyypin rakentajia. Toivon, että ymmärrät Java-tyypin geneeriset tyypit.

Siirrytään nyt eteenpäin ja tarkastellaan Genericsin Java-etuja.

Genericin edut Javassa

1. Koodin uudelleenkäytettävyys

Voit laatia strategian, luokan tai kerran ja käytä mitä tahansa tyyppiä tai mitä tahansa tarvitsemasi tapaa.

2. Yksilötyyppejä ei vaadita

Pohjimmiltaan olet palauttanut tietoja joka kerta, sinun on lähetettävä se uudelleen. Kirjasinkoko jokaisessa palautustehtävässä on suuri migreeni. Tämän lähestymistavan poistamiseksi otettiin käyttöön geneerisiä lääkkeitä.

3. Ei-yleisen algoritmin toteuttaminen

Se voi laskea algoritmit, jotka toimivat myös erilaisissa kohteissa, jotka ovat myös tyyppiturvallisia.

Siinä oli kyse Java Genericsin eduista. Tämän avulla olemme pääsemään tämän artikkelin loppuun, joka koskee Java-generiikkaa. Toivon, että pidit siitä informatiivisena ja autoit ymmärtämään Java Genericsia.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Olemme täällä auttaaksemme sinua matkasi jokaisessa vaiheessa, jotta tulemme tämän java-haastattelukysymyksen lisäksi, keksimme opetussuunnitelman, joka on tarkoitettu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän “Generics in Java.” Kommenttiosassa ”Artikkeli ja otamme sinuun yhteyttä mahdollisimman pian.