Comment créer des paramètres optionnels pour ses propres annotations?


89

Voici le code d'annotation

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

Je voudrais faire datatypeun paramètre optionnel, par exemple

@ColumnName(value="password") 

doit être un code valide.

Réponses:


125

On dirait que le premier exemple de la documentation officielle dit tout ...

/**
 * 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
je n'ai regardé que le tutoriels.ie pourquoi je ne pouvais pas trouver ceci.Puis-je connaître la différence entre non attribué et non implémenté
Biju CD

16
Il n'y a pas de différence. Ce ne sont que des valeurs String. Ils pourraient être "peter" et "paul".
sparkyspider

5
Et si mes paramètres sont des Class<?>s?
Aetherus

Dans ce cas, le système de types de Java s'applique toujours. Par exempleClass<?> proxy() default Object.class
Michael Miller

35

Pour le rendre facultatif, vous pouvez lui attribuer une valeur par défaut comme celle-ci:

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

Ensuite, il n'a pas besoin d'être spécifié lors de l'utilisation de l'annotation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.