Annotációk
Az annotáció egy speciális eszköz, mellyel metaadatokat rendelhetünk a programunk elemeihez.
@Override
public String toString() {...}
Az annotációk rendelkezhetnek paraméterrel is.
@ParameterizedTest
@CsvSource({"apple, 1", "orange, 2"})
void test(String fruit, int cost) {...}
Annotáció definiálása
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.FIELD})
public @interface Annot { ... }
@Target()
Annotáció célpontja. Lehetséges értékeket az ElementType
felsorolás tartalmazza.
@Target(ElementType.TYPE)
public @interface Annot {...}
Ez például, osztály, interfész (beleértve annotációs interfészeket), felsorolás, vagy rekord deklarációra helyezhető.
Több célpont is megadható: @Target({ElementType.TYPE, ElementType.FIELD})
@Retention()
Megadja meddig legyen megtartva az annotáció.
@Retention(RetentionPolicy.RUNTIME)
public @interface Annot {...}
RetentionPolicy.SOURCE
fordító nem tartja megRetentionPolicy.CLASS
fordító megtartja, de futási időben már nincs megRetentionPolicy.RUNTIME
futási időben is meg van tartva (esetek nagy részében ezt használjuk)