Я использую Java 1.6.0_25.
У меня есть аннотация:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Resource {
String value();
}
И позже, когда я использую getAnnotation:
Resource resource = (Resource)cls.getAnnotation(Resource.class);
компилятор и среда ID согласны с тем, что я должен привести результат, но getAnnotation объявлен в документации Java 1.5 как:
public <A extends Annotation> A getAnnotation(Class<A> annotationClass);
Так как Resource.class имеет тип Class, мне кажется, что это означает, что cls.getAnnotation(Resource.class) должен возвращать тип Resource, и мне нужно будет использовать.
Все примеры, которые я нашел с помощью метода getAnnotation, не имеют приведения, поэтому я должен делать что-то неправильно.