J'ai défini ma propre annotation personnalisée
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType();
}
comment, le cas échéant, puis-je rendre l'attribut facultatif
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;
}
Je l'ai trouvé. Elle ne peut pas être facultative, mais une valeur par défaut peut être déclarée 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 n'a de sens en tant que valeur "vide", c'est un problème.
Pour l'attribut facultatif, vous devez fournir une valeur par défaut pour cet attribut, vous pouvez fournir une valeur par défaut à l'aide du mot clé "default".
Remarque: pour un seul attribut, vous pouvez utiliser le nom d'attribut comme valeur . Si vous utilisez votre nom d'attribut comme valeur , vous pouvez directement transmettre une valeur comme celle-ci @MyCustomAnnotation (true) au lieu de @MyCustomAnnotation (myType = true).