Annotaatioiden määrittäminen: elementit ja oletusarvot
Luo mukautettuja annotaatioita @interface-määrityksellä, määritä elementtejä oletusarvoilla ja käytä meta-annotaatioita.
Annotaatioiden määrittäminen: elementit ja oletusarvot on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä annotaatiot ovat
Annotaatiot ovat luokkiin, metodeihin, kenttiin tai parametreihin liitettäviä metatietoja. Ne eivät muuta toimintaa suoraan, vaan tarjoavat tietoa kääntäjille, kehyksille tai suorituksen aikaisille käsittelijöille.
Annotaation määrittäminen @interface-määrityksellä
Käyttäkää @interface-määritystä mukautetun annotaation määrittämiseen. Elementit näyttävät metodeilta. Oletusarvo määritetään default-avainsanalla.
@interface Retry {
int times() default 3;
long delayMs() default 1000L;
Class<? extends Throwable>[] on() default {Exception.class};
}Annotaation käyttäminen
Kohdistakaa annotaatio kohteeseen. Oletusarvon sisältävät elementit voidaan jättää pois. Kun vain yhden elementin nimi on value, sen arvon voi määrittää ilman avaimen nimeä.
@Retry(times = 5, delayMs = 500)
public void callExternalService() { ... }
// Single-element shorthand:
@interface Label { String value(); }
@Label("production")
public class App {}Annotaation elementtityypit
Elementit voivat olla vain perustyyppejä (int, long jne.), String-tyyppi, Class, enum, toinen annotaatiotyyppi tai jokin edellä mainituista yksiulotteisena taulukkona.
@interface Config {
String host();
int port() default 8080;
LogLevel level() default LogLevel.INFO; // enum
Class<?> handler() default DefaultHandler.class;
String[] tags() default {};
}Meta-annotaatiot: @Retention
@Retention määrittää, kuinka pitkään annotaatio säilytetään: SOURCE (kääntäjä hylkää sen), CLASS (se sisältyy .class-tiedostoon, mutta ei ole saatavilla suorituksen aikana), RUNTIME (se on luettavissa reflektion avulla).
@Retention(RetentionPolicy.RUNTIME)
@interface Retry {
int times() default 3;
}Meta-annotaatiot: @Target
@Target rajoittaa, mihin annotaation voi kohdistaa. Useita kohteita voi luetella.
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface Audited {
String description() default "";
}@Documented ja @Inherited
@Documented sisällyttää annotaation Javadoc-dokumentaatioon. @Inherited sallii aliluokkien periä annotaation yliluokaltaan (vain luokkatasolla käytettävien annotaatioiden tapauksessa).
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Category {
String value();
}@Repeatable-annotaatiot
Merkitkää annotaatio @Repeatable-annotaatiolla, jotta se voi esiintyä samassa elementissä useita kertoja. Antakaa säilöannotaatio, joka sisältää taulukon.
@Repeatable(Tags.class)
@interface Tag { String value(); }
@interface Tags { Tag[] value(); }
@Tag("fast")
@Tag("stable")
public class Service {}Oletusarvot ja elementtien pois jättäminen
default-arvon sisältäviä elementtejä ei tarvitse määrittää kutsukohdassa. Oletusarvottomat elementit ovat pakollisia.
@Retry // uses defaults: times=3, delayMs=1000
public void action1() {}
@Retry(times=1) // overrides only times; delayMs stays 1000
public void action2() {}Annotaatio vai merkkirajapinta
Merkkirajapinnat, kuten Serializable, tarkistetaan instanceof-operaatiolla, ja ne välittävät tyyppitietoa. Annotaatiot ovat joustavampia: ne sisältävät metatietoja ja voivat sisältää elementtejä.
Yleiset sisäänrakennetut annotaatiot
Tuntekaa JDK:n annotaatiot: @Override, @Deprecated, @FunctionalInterface, @SuppressWarnings ja @SafeVarargs.
@Override
public String toString() { return "User{" + name + "}"; }
@Deprecated(since = "2.0", forRemoval = true)
public void oldMethod() {}Pikatarkistus
Mikä on ainoa säilytyskäytäntö, joka tekee annotaatiosta luettavan suorituksen aikana?
Kertaus
Määrittäkää annotaatiot @interface-määrityksellä. Käyttäkää @Retention(RUNTIME)-määritystä reflektiiviseen käsittelyyn, @Target-määritystä käytön rajoittamiseen ja default-määrettä valinnaisille elementeille. @Repeatable mahdollistaa annotaatioiden pinoamisen.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Annotaatioiden määrittäminen: elementit ja oletusarvot” ilmainen?
Kyllä – oppitunnin ”Annotaatioiden määrittäminen: elementit ja oletusarvot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Annotaatioiden määrittäminen: elementit ja oletusarvot”?
Luo mukautettuja annotaatioita @interface-määrityksellä, määritä elementtejä oletusarvoilla ja käytä meta-annotaatioita. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Annotaatioiden määrittäminen: elementit ja oletusarvot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Annotaatioiden määrittäminen: elementit ja oletusarvot
- Säilytyskäytännöt ja kohdetyypit
- Annotaatioiden käsittely ajon aikana
- Käännösaikaiset annotaatioprosessorit