Während mit Anmerkungen arbeitet ich auf dem anderen folgende Stück Code gestolpert (es ist die Hibernate @NotNull Anmerkung):Standardmethode Rückgabewert in Java-Schnittstellen
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {})
public @interface NotNull {
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface List {
public NotNull[] value();
}
public String message() default "{javax.validation.constraints.NotNull.message}";
public Class<?>[] groups() default {};
public Class<? extends Payload>[] payload() default {};
}
Ich frage mich, über das default
Schlüsselwort/in dem Verfahren konstruieren Definition, die ich noch nie zuvor gesehen habe. Wie ich verstanden habe, können Sie einen Standardwert für diese Methode (oder Annotationseigenschaft) definieren.
Jetzt habe ich versucht, dieses Konstrukt auf eine normale Schnittstelle anzuwenden, aber es ist fehlgeschlagen. Dies würde nicht kompiliert:
public interface DefaultTest {
public String test() default "value";
}
Aber dies funktionieren würde:
public @interface DefaultTest {
public String test() default "value";
}
Also meine Frage ist: Ist das default
Stichwort Annotation-spezifisch? Und wenn ja, was spricht dagegen, dieses Konstrukt in normalen Schnittstellendefinitionen zu verwenden?
Die Mehrfachschnittstellenvererbung macht absolut Sinn. Danke, dass du darauf hingewiesen hast. – MicSim
stellte sich heraus, Sie tatsächlich prescient waren. 8 Java jetzt können Sie tun, was Sie wollen! Ich habe meine Antwort aktualisiert. – Pace