Dzisiaj chciałem utworzyć swój pierwszy interfejs adnotacji zgodnie z tą dokumentacją i dostałem ten błąd kompilatora
Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ }
Oczywiście Object
nie można go użyć jako typu elementu adnotacji. Niestety nie mogłem znaleźć żadnych informacji na temat tego, które typy można ogólnie zastosować.
Przekonałem się o tym metodą prób i błędów:
String
→ Ważneint
→ WażneInteger
→ Nieprawidłowy (zaskakująco)String[]
→ Ważne (zaskakująco)Object
→ Nieprawidłowy
Być może ktoś może rzucić nieco światła na to, które typy są dozwolone i dlaczego.