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 Objectnon 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é.