Ist es möglich, eine Annotation mit einem Null als Standard anzugeben?Annotation default "null" -Wert
Was ich erreichen möchte, ist so etwas wie optionale Anmerkungsattribute.
Zum Beispiel
public @interface Foo {
Config value();
}
public @interface Config {
boolean ignoreUnknown() default false;
int steps() default 2;
}
Ich möchte @foo verwenden (ohne den Wert, der angibt, so sollte es eine Art optional sein) und ich möchte auch in der Lage sein mag, so etwas zu schreiben:
@Foo (
@Config(
ignoreUnknown = true,
steps = 10
)
)
Ist es möglich, so etwas mit Anmerkungen zu tun?
Ich will nicht so etwas wie diese öffentlich @interface Foo tun {
boolean ignoreUnknown() default false;
int steps() default 2;
}
, weil ich, wenn eine Eigenschaft unterscheiden können, will gesetzt wurde oder nicht (und nicht, wenn es hat die Standardwert oder nicht).
Es ist ein wenig kompliziert zu beschreiben, aber ich arbeite an einem kleinen Annotation Processor, der Java-Code generiert. Zur Laufzeit möchte ich jedoch eine Standard-Konfiguration einrichten, die für alle @Foo verwendet werden sollte, ausgenommen diejenigen, die eine eigene Konfiguration mit @Config festgelegt haben.
so was ich will, ist so etwas wie dieses:
public @interface Foo {
Config value() default null;
}
Aber soweit ich es nicht möglich wissen, nicht wahr? Kennt jemand eine Problemumgehung für solch ein optionales Attribut?
Mögliche Duplikat [Fehler einen Standardnullwert für eine Anmerkung Feldeinstellung] (http://stackoverflow.com/questions/1178104/error-setting-a-default- Null-Wert-für-ein-Annotations-Feld) – fracz