¿Cómo crear parámetros opcionales para sus propias anotaciones?


89

A continuación se muestra el código de anotación

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

Me gustaría hacer datatypeun parámetro opcional, por ejemplo

@ColumnName(value="password") 

debe ser un código válido.

Respuestas:


125

Parece que el primer ejemplo en la documentación oficial lo dice todo ...

/**
 * 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
Solo miré los tutoriales. Es decir, por qué no pude encontrar esto. Puedo saber la diferencia entre no asignado y no implementado
CD de Biju

16
No hay diferencia. Son solo valores de cadena. Podrían ser "peter" y "paul".
Sparkyspider

5
¿Y si mis parámetros son Class<?>s?
Aetherus

En ese caso, todavía se aplica el sistema de tipos de Java. Por ejemploClass<?> proxy() default Object.class
Michael Miller

35

Para que sea opcional, puede asignarle un valor predeterminado como ese:

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

Entonces no es necesario especificarlo al utilizar la Anotación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.