Почему я получаю ошибки компилятора с этим кодом Java?
1 public List<? extends Foo> getFoos()
2 {
3 List<? extends Foo> foos = new ArrayList<? extends Foo>();
4 foos.add(new SubFoo());
5 return foos;
6 }
Где "SubFoo" - это конкретный класс, который реализует Foo, а Foo - интерфейс.
Ошибки, которые я получаю с помощью этого кода:
- В строке 3: "Невозможно создать экземпляр ArrayList <? extends Foo > "
- В строке 4: "Метод add (capture # 1-of? extends Foo) в типе List < capture # 1-of? extends Foo > не применим для аргументов (SubFoo)"
Обновление: Благодаря Jeff C я могу изменить строку 3, чтобы сказать "новый ArrayList <Foo> ();". Но у меня все еще проблема с строкой 4.