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, Objectnã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ê.