Java-метод, возвращающий экземпляр Class

у меня есть этот код:

public <T extends Scrapper> Class<T> getScrapper() {
    return MyScrapper.class;
}

MyScrapper— это класс, реализующий Scrapperинтерфейс. Почему это не работает? Я получаю следующую ошибку в JDK7:

error: incompatible types
required: Class<T>
found:    Class<MyScrapper>
where T is a type-variable:
T extends Scrapper declared in method <T>getScrapper()

Я честно пытался искать целых 30 -40 минут.

Обновление :если я объявлю метод как public Class<? extends Scrapper> getScrapper() {, он работает. но я до сих пор не понимаю, почему исходная декларация не компилировалась. что с этим не так?

9
задан Yervand Aghababyan 24 April 2012 в 22:55
поделиться