Tietokoneet, Ohjelmointi
Java Generics: kuvaus ja menetelmät
Aloittaen ulkonäkö Java on kokenut paljon muutoksia, mikä epäilemättä toi positiivisia hetkiä sen toiminnallisuutta. Yksi näistä merkittävistä muutoksista on käyttöönotto Java Geneerinen tai yleistyksiä. Tämä toiminto ei vain tehdä kieli joustavampia ja monipuolinen, mutta myös paljon turvallisempi kannalta tuo tietotyyppejä.
Tosiasia on, että ennen käyttöönottoa geneeristen Java geneeristen koodi voisi syntyä, ei ainoastaan tyypin viiteobjektia. Tällaisia yhteyksiä voidaan antaa minkä tahansa esineen. Loppujen lopuksi luokat Java ovat epäsuorat Object luokan perillisiä. Kuitenkin, tämä lähestymistapa on mahdollinen lähde paljon virheitä, jotka liittyvät turvallisuuteen tyyppejä näennäisen muuntaminen objektin Object tyypiksi. Käytettäessä yleistyksiä kaikki heitot tehdään implisiittisesti ja automaattisesti, poistaa jopa mahdollisuudet virheitä.
Java Generics: kuvaus ja esimerkki
Tarkastellaan yksinkertaista esimerkkiä soveltamisen yleistys tavallisella luokalla alla olevassa kuvassa. Ja sitten edetä yksityiskohtaisen tarkastelun kaikki vivahteet ja vivahteita Java Generic.
Kiinnitä huomiota tapaan, jolla luokan julistuksen tapahtuu pari. Välittömästi sen jälkeen, kun luokan nimi, avoin kulma suluissa, mikä osoitti T-kirjaimen Se on eräänlainen täyteainetta, joka on prosessissa, jossa luodaan esimerkiksi tämän luokan korvataan tietyntyyppisiä. Se näyttää seuraavalta: Pari
Huomautus: alkaen kahdeksannen version Java, kohde-tyyppi, kun todetaan, viittaus kulmaraudat rakentaja voi jättää tyhjäksi. Jotta voidaan esimerkiksi kirjoittaa uudelleen, kuten edellä: Pari
Kun luokka on ilmoitettu siten, sitten ruumiin sijaan tietyntyyppisten kenttiä, linkit, objektit palauttama menetelmiä, joilla voit kirjeeseen. Koska T luotaessa luokan objekti on korvattu tietyn tyyppistä, ensimmäinen ja toinen kentät tässä tapauksessa olla tyyppiä Integer.
Kun toiminnan perustelut ja firstItem secondItem, lähetetään asianomaiseen rakentajan on oltava tyyppiä kokonaisluku tai alaluokkaan. Jos yrität lähettää dataa tyyppi, joka on erilainen kuin mitä oli määritetty luotaessa objektin, kääntäjä ei anna tätä virhettä. Siten argumenttien rakentaja, kun esine on seuraava: Pari
Yleistää useita parametreja luokan tyyppejä
Yleisessä luokat voivat myös ilmoittaa useita parametreja on tyyppiä, joka on asetettu kulmaan suluissa pilkulla. Uusittu tapaus Pari luokka on esitetty alla.
Kuten voidaan nähdä, kun luoda esimerkiksi tämän luokan kulmasulkeissa on ilmoitettava sama määrä eri parametreina. Jos olet perehtynyt tämäntyyppisten datarakenne karttaa, voit nähdä, että se käyttää täsmälleen samaa periaatetta. Siellä ensimmäinen argumentti määrittää näppäintyypistä, ja toinen - tyyppi arvosta. On huomattava, että erilaisia lähetetään, kun objektin argumentit voivat olla päällekkäisiä. Esimerkiksi seuraava mainos Pair luokka esimerkiksi on täysin oikeassa: Pari
Jotkin yleistyksiä
Ennen kuin jatkat, on huomattava, että Java kääntäjä ei luoda erilaisia versioita luokan Pair. Itse parhaillaan kokoamassa yleisen tyypin kaikki tiedot poistetaan. Sen sijaan tuo sopivaa tyyppiä, jolla luodaan erityinen versio Pair luokassa. Kuitenkin ohjelma on edelleen vain geneeristä luokan. Tätä prosessia kutsutaan Java Yleinen puhdistus tyyppi.
Huomaa tärkeä asia. Linkkejä eri versioita samasta java geneerinen luokka ei voi viitata yhteen ja samaan kohde. Eli kai meillä on kaksi linkkiä: Pari
Rajoituksia geneeristen luokkien
On tärkeää tietää, että yleistyksiä voidaan soveltaa vain viittaamaan tyyppejä, jotka on välittää parametreja geneerisen luokan Java argumentin on oltava tyypiksi. Nämä yksinkertaiset tyyppejä, kuten, esim., Kahden tai pitkä, ei voida siirtää. Toisin sanoen, seuraava rivi Pair luokka ilmoitusta ei sallita: Pari
Toinen vakava rajoitus on kyvyttömyys luoda esimerkiksi parametrin tyypin. Esimerkiksi, seuraava rivi aiheuttaa kokoelma virhe: T ensimmäinen = uusi T (). Tämä on selvää, koska et tiedä etukäteen, onko argumentti täyden luokan tai abstrakteja, tai jopa käyttöliittymä. Sama koskee ryhmien luomisessa.
rajallisella
Usein on tilanteita, kun se on tarpeen rajoittaa luetteloa, joita voidaan välitetään argumenttina Java geneerisen luokan. Oletetaan, että meidän luokalla Pair haluamme kapseloida vain numeeriset arvot edelleen matemaattiset operaatiot niistä. Voit tehdä tämän meidän on määriteltävä yläraja parametrin tyyppiä. Se toteutetaan avulla yläluokaksi mainoksia perinyt kaikki argumenttien kulmasulkeissa. Se näyttää seuraavalta: luokka Pari
Tämä on yleinen vastaanotto. Tällaiset rajoitukset käytetään usein antamaan yhteensopivuus tyyppi parametrit yhteen ja samaan luokkaan. Mieti esimerkiksi meidän luokka Pair: luokka Pari
Rajoittaminen "pohja" on täsmälleen samalla tavalla, mutta sanan sijasta ulottuu kirjoittaa sanan Super. Joka on luokiteltu luokkaan Pari
Generic Java menetelmiä ja rakentajien
Java, yleistyksiä voidaan soveltaa paitsi luokat, mutta myös menetelmiä. Esimerkiksi yleinen menetelmä voidaan julistaa tavallisessa luokassa.
Kuten yllä olevassa kuvassa, mainos yleistynyt menetelmä ei ole iso juttu. Tarpeeksi ennen palautuva menetelmän laittaa kulmaraudat ja määritä laji parametrit niihin.
Jos kaikki tehdään samalla tavalla kuin rakentajan:
Kulmasulkeet tässä tapauksessa se toimittaa suunnittelijan nimi, koska hänellä ei ole paluuta arvoa. Seurausta sekä ohjelmat ovat:
kokonaisluku
jono
Similar articles
Trending Now