2015-12-15 4 views
1

Я реализую метод абстрактного класса, который возвращает список конкретных типов в зависимости от того, какой параметр он получает.Общий тип возвращаемого значения в Java

public static List<T extends AbstractClass> method(List<? extends AbstractClass> objects) { 
    return listOfT; 
} 

Метод выше живет на абстрактном классе. Если я назову его списком ConcreteType1, я вернусь к List<ConcreteType1>. Если я назову его с помощью ConcreteType2, я вернусь к List<ConcreteType1>.

Как написано, это не работает прямо сейчас. Я получаю ошибку компиляции, в которой говорится «Неожиданная привязка». Есть идеи?

+2

Вы забыли объявить параметр типа. Оценки будут объявлены вместе с ним. –

ответ

2

Это должно быть написано

public static <T extends AbstractClass> List<T> method(List<T> objects) { 
    return listOfT; 
} 
Смежные вопросы