Oggi volevo creare la mia prima interfaccia di annotazione seguendo questa documentazione e ho riscontrato questo errore del compilatore
Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ }
Ovviamente Object
non può essere usato come tipo di un membro di annotazione. Purtroppo non sono riuscito a trovare alcuna informazione su quali tipi possono essere utilizzati in generale.
Questo l'ho scoperto usando tentativi ed errori:
String
→ Validoint
→ ValidoInteger
→ Non valido (sorprendentemente)String[]
→ Valido (sorprendentemente)Object
→ Non valido
Forse qualcuno può far luce su quali tipi sono effettivamente ammessi e perché.