Почему 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, нет приведения, поэтому я должен что-то делать не так.

Ответы на вопрос(1)

Ваш ответ на вопрос