suppresswarnings sirven sirve reflexion que para las example ejemplo crear categorias anotaciones annotation java annotations metaprogramming

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).

Mira este ejemplo para más detalles


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; }