Today I wanted to create my first annotation interface following this documentation and I got the compiler error "Invalid type for annotation member":
public @interface MyAnnotation {
Object myParameter;
^^^^^^
}
Obviously Object cannot be used as type of an annotation member. Unfortunately I could not find any information on which types can be used in general.
This I found out using trial-and-error:
String
--> Valid
int
--> Valid
Integer
--> Invalid (Surprisingly)
String[]
--> Valid (Surprisingly)
Object
--> Invalid
Perhaps someone can shed some light on which types are actually allowed and why.