Hoje eu queria criar minha primeira interface de anotação seguindo esta documentação e recebi esse erro do compilador
Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ }
Obviamente, Object
não pode ser usado como tipo de membro de anotação. Infelizmente, não consegui encontrar nenhuma informação sobre quais tipos podem ser usados em geral.
Descobri isso usando tentativa e erro:
String
→ Válidoint
→ VálidoInteger
→ Inválido (Surpreendentemente)String[]
→ Válido (Surpreendentemente)Object
→ Inválido
Talvez alguém possa esclarecer quais tipos são realmente permitidos e por quê.