Por que Class.getAnnotation () exige que eu faça um elenco?

Estou usando o Java 1.6.0_25.

Tenho uma anotação definida:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public ,@interface Resource {
    String value();
}

E mais tarde, quando eu uso getAnnotation:

Resource resource = (Resource)cls.getAnnotation(Resource.class);

o compilador e o IDE concordam que devo converter o resultado, mas getAnnotation é declarado na documentação do Java 1.5 como:

public <A extends Annotation> A getAnnotation(Class<A> annotationClass);

Como o Resource.class é do tipo Class, parece-me que isso significa que cls.getAnnotation (Resource.class) deve retornar o tipo Resource, e eu preciso convertê-l

Todos os exemplos que encontrei usando getAnnotation não têm elenco, por isso devo estar fazendo algo errad

questionAnswers(2)

yourAnswerToTheQuestion