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.