0Pricing
Java Academy · Lektion

Annotationen definieren: Elemente und Standardwerte

Erstellen Sie eigene Annotationen mit @interface, definieren Sie Elemente mit Standardwerten und wenden Sie Meta-Annotationen an.

Annotationen definieren: Elemente und Standardwerte ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was sind Annotationen?

Annotationen sind Metadaten, die auf Klassen, Methoden, Felder oder Parameter angewendet werden. Sie ändern das Verhalten nicht direkt, sondern stellen Compilern, Frameworks oder Prozessoren zur Laufzeit Informationen bereit.

Eine Annotation mit @interface deklarieren

Verwenden Sie @interface, um eine benutzerdefinierte Annotation zu deklarieren. Ihre Elemente sehen wie Methoden aus. Der Standardwert wird mit default angegeben.

@interface Retry {
    int times()      default 3;
    long delayMs()   default 1000L;
    Class<? extends Throwable>[] on() default {Exception.class};
}

Die Annotation anwenden

Wenden Sie die Annotation auf das Ziel an. Elemente mit Standardwerten können Sie weglassen. Wenn nur ein Element namens value vorhanden ist, kann der Wert ohne den Schlüssel angegeben werden.

@Retry(times = 5, delayMs = 500)
public void callExternalService() { ... }

// Single-element shorthand:
@interface Label { String value(); }
@Label("production")
public class App {}

Typen von Annotationselementen

Elemente dürfen nur primitive Typen (int, long usw.), String, Class, ein enum, einen weiteren Annotationstyp oder ein eindimensionales Array der genannten Typen haben.

@interface Config {
    String   host();
    int      port()      default 8080;
    LogLevel level()     default LogLevel.INFO;  // enum
    Class<?> handler()   default DefaultHandler.class;
    String[] tags()      default {};
}

Metaannotationen: @Retention

@Retention legt fest, wie lange die Annotation erhalten bleibt: SOURCE (wird vom Compiler verworfen), CLASS (in der .class-Datei, nicht zur Laufzeit), RUNTIME (über Reflection lesbar).

@Retention(RetentionPolicy.RUNTIME)
@interface Retry {
    int times() default 3;
}

Metaannotationen: @Target

@Target schränkt ein, wo die Annotation angewendet werden darf. Mehrere Ziele können angegeben werden.

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface Audited {
    String description() default "";
}

@Documented und @Inherited

@Documented nimmt die Annotation in Javadoc auf. @Inherited ermöglicht es Unterklassen, die Annotation von ihrer Oberklasse zu erben (nur bei Annotationen auf Klassenebene).

@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Category {
    String value();
}

@Repeatable-Annotationen

Markieren Sie eine Annotation mit @Repeatable, damit sie mehrmals auf dasselbe Element angewendet werden kann. Stellen Sie eine Container-Annotation bereit, die ein Array enthält.

@Repeatable(Tags.class)
@interface Tag { String value(); }
@interface Tags { Tag[] value(); }

@Tag("fast")
@Tag("stable")
public class Service {}

Standardwerte und das Weglassen von Elementen

Elemente mit default-Werten müssen an der Aufrufstelle nicht angegeben werden. Elemente ohne Standardwerte sind obligatorisch.

@Retry                  // uses defaults: times=3, delayMs=1000
public void action1() {}
@Retry(times=1)         // overrides only times; delayMs stays 1000
public void action2() {}

Annotation oder Marker-Interface

Marker-Interfaces (wie Serializable) werden mit instanceof geprüft und vermitteln Typinformationen. Annotationen sind flexibler: Sie enthalten Metadaten und können Elemente besitzen.

Häufig verwendete integrierte Annotationen

Sie sollten die JDK-Annotationen kennen: @Override, @Deprecated, @FunctionalInterface, @SuppressWarnings und @SafeVarargs.

@Override
public String toString() { return "User{" + name + "}"; }
@Deprecated(since = "2.0", forRemoval = true)
public void oldMethod() {}

Kurzer Test

Welche Aufbewahrungsrichtlinie ist die einzige, durch die eine Annotation zur Laufzeit lesbar wird?

Zusammenfassung

Deklarieren Sie Annotationen mit @interface. Verwenden Sie @Retention(RUNTIME) für die Verarbeitung per Reflection, @Target zur Einschränkung der Verwendung und default für optionale Elemente. @Repeatable ermöglicht das Stapeln mehrerer Annotationen.

Häufig gestellte Fragen

Ist die Lektion „Annotationen definieren: Elemente und Standardwerte“ kostenlos?

Ja — der vollständige Text von „Annotationen definieren: Elemente und Standardwerte“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Annotationen definieren: Elemente und Standardwerte“?

Erstellen Sie eigene Annotationen mit @interface, definieren Sie Elemente mit Standardwerten und wenden Sie Meta-Annotationen an. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Annotationen definieren: Elemente und Standardwerte“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Annotationen definieren: Elemente und Standardwerte
  2. Retention-Richtlinien und Zieltypen
  3. Annotationen zur Laufzeit verarbeiten
  4. Annotation-Processor zur Compile-Zeit
← Zurück zu Java Academy