Definér og brug annotationer

Du kan bruge annotationen @Interface til at definere din egen annotationsdefinition.

Definér dine egne annotationer

Brug annotationen @Interface til at definere din egen annotationsdefinition:
  • Annotationsdefinitioner ligner grænsefladedefinitioner
  • Annotationsmetodeerklæringer har hverken parametre eller throws-udtryk, og de returnerer et af følgende elementer:
    • primitive typer
    • Streng
    • Klasse
    • Enum-type
    • Et array af en af ovenstående typer
  • Metoder kan have standardværdier
public @interface CreatedBy{
     String name();
     String date();
     boolean contractor() default false;
}          
@CreatedBy(name = "Mary Smith",date="02/02/2008");
public class MyClass{....}         
Metaannotationer: Metaannotationer (annotationer til annotationer) angiver yderligere oplysninger om, hvordan en annotation skal bruges:
  • @Target
    • Begrænser brugen af en annotation
    • Enkelt argument skal være fra ElementType-enum
      • {TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE}
  • @Retention
    • Angiver, hvor annotationsoplysningerne skal tilbageholdes
    • Enkelt argument skal være fra RetentionPolicy-enum
      • {SOURCE, CLASS, RUNTIME}
  • @Documented
    • Markering til annotationer, der skal inkluderes i Javadoc
  • @Inherited
    • Markering til Type-annotationer, der skal overtages af undertyper
Andre indbyggede annotationer:
  • @Overrides
    • Gælder for en metode
    • Angiver, at compileren skal generere en fejl, hvis metoden ikke reelt tilsidesætter en superklassemetode.
  • @Deprecated
    • Gælder for en metode
    • Angiver, at compileren skal generere en advarsel, når metoden bruges eksternt
  • @SuppressWarnings
    • Gælder for en type eller en metode
    • Angiver, at compileren skal undertrykke advarsler for det pågældende element og alle underelementer
      @Deprecated
      public void oldMethod() {...}
      
      @ SupressWarnings
      public void yesIknowI