Come creare parametri opzionali per le proprie annotazioni?


89

Di seguito è riportato il codice di annotazione

public @interface ColumnName {
   String value();
   String datatype();
 }

Ad esempio, vorrei creare datatypeun parametro opzionale

@ColumnName(value="password") 

dovrebbe essere un codice valido.

Risposte:


125

Sembra che il primo esempio nella documentazione ufficiale dica tutto ...

/**
 * Describes the Request-For-Enhancement(RFE) that led
 * to the presence of the annotated API element.
 */
public @interface RequestForEnhancement {
    int    id();
    String synopsis();
    String engineer() default "[unassigned]"; 
    String date()     default "[unimplemented]"; 
}

1
Ho solo guardato i tutorials.ie perché non sono riuscito a trovare questo. posso sapere la differenza tra non assegnato e non implementato
Biju CD

16
Non c'è differenza. Sono solo valori String. Potrebbero essere "peter" e "paul".
Sparkyspider

5
E se i miei parametri fossero Class<?>s?
Etere

In tal caso, il sistema di tipi di Java si applica ancora. Ad esempioClass<?> proxy() default Object.class
Michael Miller,

35

Per renderlo opzionale puoi assegnargli un valore predefinito come questo:

public @interface ColumnName {
   String value();
   String datatype() default "String";
 }

Quindi non è necessario specificarlo quando si utilizza l'annotazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.