È possibile specificare un'annotazione con un valore null come predefinito?Annotazione valore "null" predefinito
Quello che voglio ottenere è qualcosa come attributi di annotazione opzionali.
Per esempio
public @interface Foo {
Config value();
}
public @interface Config {
boolean ignoreUnknown() default false;
int steps() default 2;
}
Vorrei usare @pippo (senza specificare il valore, e quindi dovrebbe essere una sorta di optional) e mi piacerebbe anche essere in grado di scrivere qualcosa del genere:
@Foo (
@Config(
ignoreUnknown = true,
steps = 10
)
)
E 'possibile fare qualcosa di simile con le annotazioni?
Non voglio fare qualcosa di simile @interface pubblica Foo {
boolean ignoreUnknown() default false;
int steps() default 2;
}
perché voglio essere in grado di distinguere se una proprietà è stata impostata o meno (e se non ha la valore predefinito o meno).
È un po 'complicato da descrivere, ma sto lavorando su un piccolo Annotation Processor che genera codice Java. Comunque durante il runtime vorrei configurare una configurazione di default che dovrebbe essere usata per tutti @Foo, eccetto quelli che hanno impostato la propria configurazione con @Config.
così quello che voglio è qualcosa di simile:
public @interface Foo {
Config value() default null;
}
Ma per quanto ne so la sua non è possibile, giusto? Qualcuno conosce una soluzione alternativa per un attributo così facoltativo?
Eventuali duplicati di [Errore impostazione di un valore nullo di default per il campo di un'annotazione] (http://stackoverflow.com/questions/1178104/error-setting-a-default- campo null-value-per-an-annotations) – fracz