62 votes

annotation personnalisée java: rendre un attribut facultatif

J'ai défini ma propre annotation personnalisée

 @Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType();
}
 

Comment puis-je rendre l'attribut facultatif?

97voto

Dan Dyer Points 30082

Vous pouvez fournir une valeur par défaut pour l'attribut:

 @Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType() default Object.class;
}
 

3voto

flybywire Points 36050

Je l'ai trouvé Cela ne peut pas être optionnel, mais un défaut peut être déclaré comme ceci:

 @Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType() default String.class;
}
 

Si aucune valeur par défaut ne peut avoir un sens en tant que valeur "vide", c'est un problème.

1voto

Dhiral Pandya Points 1987

Pour attribut Facultatif, vous devez fournir la valeur par défaut de cet attribut vous pouvez offrir de la valeur par défaut à l'aide de "par défaut" mot-clé.

Remarque : Pour qu'un attribut, vous pouvez utiliser le nom de l'attribut en tant que valeur. Si vous utilisez votre nom d'attribut en tant que valeur , vous pouvez passer directement de la valeur comme ceci @MyCustomAnnotation(true) à la place de @MyCustomAnnotation(myType = true).

Voir cet exemple pour plus de détails

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X