2012-02-04 3 views
1

Я создаю приложение, и у меня есть FragmentPager, который я использую. Чтобы использовать FragmentPager, я должен поддерживать его с помощью FragmentPagerAdapter. У меня есть интерфейс, который я создал вызываемый Nameable, и я хочу создать список массивов, который вы можете разместить там Fragments, который реализует интерфейс Nameable.Ошибка генераторов в списке массивов

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

Это то, что я пробовал:

private ArrayList<Fragment extends Nameable> mFragmentList; 

Ошибка:

Syntax error on token "extends", , expected

Другое дело (что не так правильный способ сделать это, но я попробовал его)

private ArrayList<? extends Fragment & Nameable> mFragmentList; 

Ошибка:

Syntax error on token "&", , expected

Почему это заявление дает мне ошибку? Я уверен, что это правильный способ сделать это.

Спасибо, Elad.

ответ

3

Это должно быть достаточно:

private ArrayList<Fragment> mFragmentList; 

extends и super в дженерик подпись используется для ограничения параметров типа, а не фактические типов. То, что Fragment реализует Nameable, уже определено в классе Fragment, вам не нужно повторять это везде.

+0

Конечно, но я хочу ограничить тип, потому что он мне нужен. Пример: '@Override \t \t общественных Строка GetTitle (промежуточное положение) { \t \t \t возврата mFragmentList.get (положение) .getName(); \t \t} ' – Elad92

+0

Подождите, вы имеете в виду, что' Fragment' не реализует 'Nameable'? Если это так, создайте класс/интерфейс, который делает, и создайте список его типа. – millimoose

+0

Нет, Фрагмент не реализует Именимый. Это немного сложнее, у Fragment есть некоторые подклассы, и я хочу включить в этот класс подклассы Fragments и подклассы подкласса Fragment (скажем, ListFragment расширяет фрагмент и мой класс расширяет ListFragment), и все они должны реализовать Nameable. Ты понимаешь? – Elad92

Смежные вопросы