sirven - anotación personalizada java: hacer un atributo opcional
reflection en java (3)
Definí mi propia anotación personalizada
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType();
}
cómo, si es que lo hago, puedo hacer que el atributo sea opcional
Lo encontré. No puede ser opcional, pero un valor predeterminado se puede declarar así:
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default String.class;
}
Si ningún valor predeterminado puede tener sentido como valor "vacío", entonces eso es un problema.
Para el atributo opcional, debe proporcionar el valor predeterminado para ese atributo, puede proporcionar el valor predeterminado con la palabra clave "predeterminada".
Nota: Para un solo atributo, puede usar el nombre del atributo como valor . Si usa su nombre de atributo como valor , puede pasar directamente un valor como este @MyCustomAnnotation (verdadero) en lugar de @MyCustomAnnotation (myType = true).
Puede proporcionar un valor predeterminado para el atributo:
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default Object.class;
}