Huomautus (Java)
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11. joulukuuta 2021 tarkistetusta
versiosta . tarkastukset vaativat
3 muokkausta .
Java-merkintä on Java -kielen syntaktisten metatietojen erityinen muoto, joka voidaan lisätä lähdekoodiin .
Annotaatioita käytetään koodin analysointiin, kokoamiseen tai suorittamiseen . Annotoidut paketit, luokat, menetelmät, muuttujat ja parametrit.
Näyttää tältä @ИмяАннотации, joka edeltää muuttujan, parametrin, menetelmän, luokan, paketin määritelmää.
Sovellus
Annotaatio suorittaa seuraavat toiminnot:
- antaa tarvittavat tiedot kääntäjälle / tulkijalle ;
- antaa tietoa erilaisille työkaluille muun koodin, konfiguraatioiden jne. luomiseen;
- voidaan käyttää ajon aikana tietojen hakemiseen heijastuksen kautta;
Sisäiset huomautukset
Lähdekoodiin käytetyt huomautukset:
- @Override - Merkintämerkintä, jota voidaan soveltaa vain menetelmiin. @Override- merkinnällä varustetun menetelmän on ohitettava superluokan menetelmä. @Override - tarkistaa, onko menetelmä ohitettu. Aiheuttaa käännös-/tulkintavirheen, jos menetelmää ei löydy pääluokasta tai rajapinnasta;
- @Deprecated - toteaa, että menetelmä on vanhentunut eikä sitä suositella käytettäväksi. Oletetaan, että jostain syystä tämä menetelmä on edelleen jäljellä, mutta se poistetaan tulevissa versioissa. Antaa kokoamisvaroituksen, jos menetelmää käytetään;
- @SuppressWarnings - ohjeistaa kääntäjää estämään huomautusparametreissa määritellyt käännösvaroitukset;
- @SafeVarargs - osoittaa, että muuttuvaan argumenttien lukumäärään liittyvää vaarallista toimintaa ei sallita. Koskee vain variadicisia menetelmiä ja konstruktoreita, jotka on ilmoitettu staattisiksi tai lopullisiksi .
Muihin merkintöihin sovelletut merkinnät:
- @Retention - määrittää kuinka merkitty huomautus voidaan tallentaa - koodiin, käännetyssä luokassa tai koodin ollessa käynnissä. @Retention-merkinnällä voit määrittää merkinnän elinkaaren: onko se vain lähdekoodissa, käännetyssä tiedostossa vai näkyykö se myös suorituksen aikana. Oikean tyypin valinta riippuu siitä, kuinka haluat käyttää huomautusta, esimerkiksi luodaksesi jotain vierekkäin lähdekoodeista tai lyömällä luokkaa heijastuksen kautta suorituksen aikana .
- @Documented merkitsee huomautuksen dokumentaatioon sisällytettäväksi. @Documented-merkintä osoittaa , että näin merkitty huomautus tulisi lisätä kentän/menetelmän javadociin ja niin edelleen. Esimerkiksi luokka, joka on merkitty ilman @Documented , näyttäisi tältä:public class TestClass laajentaa Javaa . lang . Esine
- @Target merkitsee huomautuksen rajoittavaksi sitä, mitä huomautuselementtejä siihen voidaan soveltaa. @Target-merkintä osoittaa, mitä voimme tarkalleen merkitä tällä merkinnällä, se voi olla kenttä, menetelmä, tyyppi jne.
- @Peritty - ilmaisee, että huomautusta voidaan laajentaa annotoidun luokan alaluokilla. @Peritty-merkintä merkitsee huomautuksen, jonka sellaisella merkinnällä merkityn luokan lapsi perii.
Esimerkki
public class Animal {
julkinen void puhua () {
}
}
julkinen luokka Kissa laajentaa Animal {
@Override // Huomautus, joka osoittaa, että tämä menetelmä ohittaa samannimisen emoluokan menetelmän
public void speak () {
System . ulos . println ( "Miau." );
}
@Deprecated // Huomautus, joka osoittaa, että tämä menetelmä on vanhentunut ja se poistetaan pian
public boolean soundsGood () {
return true ;
}
}
Merkintöjen luominen
Annotaatioilmoitus on samanlainen kuin käyttöliittymän ilmoitus, jossa käytetään @-merkkiä avainsanan interface edessä :
@Syötävä
ruoka ruoka = uusi Ruoka ();
julkinen @käyttöliittymä Syötävä {
// luo oma merkintä
}
Mukautetut merkinnät voivat sisältää erilaisia arvoja, joita kuvataan merkintämenetelminä. Jokainen menetelmän määrittely määrittelee huomautuselementin. Metodin määrittely ei saa sisältää argumentteja tai ohjeita throws. Palautustyypin on oltava jokin seuraavista: primitiivinen tyyppi , merkkijono , luokka , lueteltu tyyppi ja taulukko, joka sisältää aiemmin mainitun tietotyypin. Menetelmillä voi olla oletusarvoja.
@Syötävä ( true ) // määritä syötävälle todelliselle arvolle
ruoka ruoka = uusi Ruoka ();
public @interface Syötävä {
boolen syötävä () oletusarvo epätosi ; // oletuksena syötävä on epätosi
}
public @interface Tekijä {
Merkkijono etunimi ();
Merkkijono sukunimi ();
}
@Tekijä ( first_name = "James" , last_name = "Gosling" )
Kirja kirja = uusi Kirja ();
// Annotaatio voidaan myös merkitä sen laajuuden määrittelemiseksi
@Target ({ ElementType . METHOD })
public @interface SomeAnnotation {}
public class SomeClass {
@SomeAnnotation
private void doSomething (){}
}
Historia
Alun perin Java-alustalla oli mekanismi, joka edelsi merkintämekanismia, kuten ohimenevä muokkaus tai @Deprecated- tunniste . Syyskuussa 2002 JSR-175 esiteltiin Java-yhteisölle, jossa kuvattiin huomautusten pääkohdat. Se hyväksyttiin vuonna 2004. Huomautuksia on tullut saataville tällä kielellä JDK:n versiosta 1.5 lähtien, ja ne kuvataan JSR-269:ssä. Versiossa 1.6 merkinnät on integroitu javac -kääntäjään .
Linkit