Definování a používání anotací

Pomocí anotace @Interface můžete vytvořit svoji vlastní definici anotace.

Definování vlastních anotací

Použijte anotaci @Interface k vytvoření vlastní definice anotace:
  • Definice anotací připomínají definice rozhraní.
  • Deklarace metod anotací nemají parametry ani klauzule throws. Vrací jeden z těchto prvků:
    • Primitiva.
    • Řetězec.
    • Třída.
    • Výčet.
    • Pole prvků výše uvedených typů.
  • Metody mohou mít výchozí hodnoty.
public @interface CreatedBy{
     String name();
     String date();
     boolean contractor() default false;
}          
@CreatedBy(name = "Mary Smith",date="02/02/2008");
public class MyClass{....}         
Meta-anotace: Metaanotace (anotace anotací) poskytují další informace o způsobu použití anotací:
  • @Target
    • Omezuje použití anotace.
    • Jediný argument musí být z výčtu ElementType.
      • {TYPE, FIELD,METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE}
  • @Retention
    • Označuje, zda se má zachovávat informace anotace.
    • Jediný argument musí být z výčtu RetentionPolicy.
      • {SOURCE, CLASS, RUNTIME}
  • @Documented
    • Značka pro anotace, které mají být zahrnuty do dokumentace Javadoc.
  • @Inherited
    • Značka pro anotace typu, které mají být zděděny podtypy.
Další vestavěné anotace:
  • @Overrides
    • Platí pro metodu.
    • Označuje, že kompilátor má generovat chybu v případě, že metoda skutečně nepotlačuje metodu supertřídy.
  • @Deprecated
    • Platí pro metodu.
    • Označuje, že kompilátor má generovat varování v případě externího použití metody.
  • @SuppressWarnings
    • Platí pro typ nebo metodu.
    • Označuje, že kompilátor má potlačit varování pro daný prvek a všechny dílčí prvky.
      @Deprecated
      public void oldMethod() {...}
      
      @ SupressWarnings
      public void yesIknowIuseDeprecatedMethods() {...}