Hoy quería crear mi primera interfaz de anotación siguiendo esta documentación y recibí este error de compilación
Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ }
Obviamente Object
no se puede usar como tipo de miembro de anotación. Lamentablemente, no pude encontrar ninguna información sobre qué tipos se pueden utilizar en general.
Esto lo descubrí usando prueba y error:
String
→ Válidoint
→ VálidoInteger
→ Inválido (Sorprendentemente)String[]
→ Válido (Sorprendentemente)Object
→ Inválido
Quizás alguien pueda arrojar algo de luz sobre qué tipos están realmente permitidos y por qué.