Úvod Anotace v Javě
Anotace byly zavedeny nebo byly k dispozici ve verzi 1.5 Java Development Kit (JDK). Anotace v Javě poskytují více informací o datech přítomných ve struktuře kódu, tj. Jsou to data o datech známá také jako metadata.
Co jsou anotace v Javě?
Anotace pomáhají definovat metadata v kódu standardizovaným způsobem. Anotace také pomáhají při poskytování pokynů kompilátoru java, které je třeba dodržovat při kompilaci tohoto kódu java.
Při použití anotací používáme znaménko '@' a potom následuje název vaší anotace, takže kompilátor zachází s anotací. Je důležité si uvědomit, že anotace lze přidat dříve,
- Prohlášení třídy
- Prohlášení o proměnné člena
- Prohlášení konstruktéra
- Prohlášení o metodě
- Deklarace parametrů
- Prohlášení o lokální proměnné.
Důležité je zapamatovat si, že všechny anotace rozšiřují rozhraní java.lang.annotation.Annotation. Anotace také nemohou obsahovat žádnou klauzuli rozšíření.
Vestavěné anotace Java
V Javě jsou zabudované anotace jako @Override, @Deprecated, @SuppressWarnings, které jsou navrženy pro konkrétní účel a používají se v jedné z výše uvedených situací, například pouze pro třídu nebo pouze pro metodu, atd.
Příklad č. 1 - Oververide
class Dad (
public void say() (
System.out.println("Do your homework");
)
)
public class Child extends Dad (
@Override
public void say()(
System.out.println("I wanna play");
)
public static void main(String args())(
Dad daddy = new Child();
daddy.say();
)
)
Výstup
Příklad č. 2 - Nepřijatý
public class Outdated
(
@Deprecated
public void oldShow()
(
System.out.println("This Method is deprecated"); )
public static void main(String args())
(
Outdated od = new Outdated ();
od.oldShow();
)
)
Výstup
Meta anotace
Existuje pět typů meta-anotací:
- Dokumentováno - Informuje, že člen nebo proměnná nebo třída, která používá tuto anotaci, musí být zdokumentována pomocí Javadocu nebo jiných podobných dostupných nástrojů.
- Target - Slouží k určení, ke kterému typu se anotace použije. Většinou se používá spolu s vašimi vlastními anotacemi.
- Zděděno - Označuje anotaci, která se má zdědit do podtřídy.
- Retention - Udává, jak dlouho mají být anotace s anotovaným typem zachovány. Vezme argument Retention Policy, jehož možné hodnoty jsou: ZDROJ, TŘÍDA a RUNTIME.
- Opakovatelné - informuje o tom, že typy anotací, jejichž deklaraci uvádí, jsou opakovatelné.
Příklad - dokumentace a uchování
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface RSample (
String rentent();
)
@Documented
@interface DSample (
String doc();
)
public class MetaAnnotate (
public static void main(String arg())
(
new MetaAnnotate().rentent();
new MetaAnnotate().doc();
)
@RSample (rentent="Meta Info R")
public void rentent() (
System.out.println("Retention Policy Applied");
)
@DSample(doc="Meta Info D")
public void doc() (
System.out.println("Code Documented with the value");
)
)
Výstup
Vysvětlení
RetentionPolicy.RUNTIME - Tato hodnota určuje, že hodnota anotace by měla být k dispozici za běhu, pro inspekci pomocí java reflexe.
Spusťte příkaz Javadoc a zobrazte dokumentaci k vašemu kódu.
Typy anotací
Existují tři kategorie anotací a jsou následující:
1. Anotace markerů - Tyto typy anotací se používají jako deklarace k oznámení vývojáři, o čem je níže uvedená funkce nebo třída, tj. Sdílí další informace o funkci nebo třídě, například zda funkce převažuje jinou funkci nebo je funkce zastaralá. atd. @Override, @Deprecated jsou považovány za anotace markerů.
Příklad: DemoAnnotation ()
2. Anotace s jednou hodnotou - Tento druh anotace nabývá hodnoty k určení té hodnoty pro ten člen, pro kterého je anotace umístěna před, a proto nemusí specifikovat jméno tohoto člena.
Příklad: DemoAnnotation (“custId123”)
3. Úplné anotace - Tento druh anotace má několik hodnot, párů, členů.
Příklad: DemoAnnotation (category = ”Toys”, value = 1500)
Zvyk
Vlastní anotace jsou vytvářeny uživatelským rozhraním, za kterým následuje název anotace, jak uvidíme v níže uvedeném příkladu.
Soubor 1: Definována vlastní anotace
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target((ElementType.TYPE, ElementType.METHOD))
@Retention(RetentionPolicy.RUNTIME)
@interface Magicians
(
String Wizard() default "Reynolds";
String House() default "Green";
)
@Magicians
public class Magician
(
@Magicians(Wizard = "Harry Potter", House = "Red")
public String getString() ( return null; )
)
Soubor 2: Hlavní třída, která volá Třídu vlastních poznámek
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class MyCustomAnnotation
(
public static void main(String() args) throws NoSuchMethodException, SecurityException
(
new Magician();
Class magic = Magician.class;
readAnnotationOn(magic);
Method method = magic.getMethod("getString", new Class()());
readAnnotationOn(method);
)
static void readAnnotationOn(AnnotatedElement element)
(
try
(
System.out.println("\n Find annotations on " + element.getClass().getName());
Annotation() annotations = element.getAnnotations();
for (Annotation annotation : annotations)
(
if (annotation instanceof Magicians)
(
Magicians mData = (Magicians) annotation;
System.out.println("Wizard Name :" + mData.Wizard());
System.out.println("Wizard House Color :" + mData.House());
)
)
) catch (Exception e)
(
e.printStackTrace();
)
)
)
Výstup
Závěr
V tomto článku jsme se dozvěděli, jaké jsou anotace javy a jejich typy s příklady, dále jsme viděli příklady vestavěných anotací poskytovaných javou a kódovali naše vlastní anotace.
Zjistili jsme, že anotace jsou užitečné při standardizaci kódu a také pomáhají lépe porozumět kódu a jeho struktuře.
Doporučené články
Toto je průvodce anotacemi Java. Zde diskutujeme, jak vestavěné anotace Java s uvedenými příklady a výstupy. Další informace naleznete také v následujících článcích -
- Proměnné v Javě
- Vzory v Javě
- Rychlé třídění v Javě
- Nejlepší Java překladače
- instanceOf v Javě s příkladem