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