2012-02-04 8 views
1

私はアプリケーションを作成していますが、私が使用するFragmentPagerがあります。 FragmentPagerを使用するには、FragmentPagerAdapterでサポートする必要があります。私はNameableという名前のインターフェイスを持っており、Nameableインターフェイスを実装するFragmentsという配列リストを作成したいと考えています。アレイリストのジェネリックスエラー

私はそれらの方法を試しましたが、それは私にエラーを与えます。そして、なぜそれが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; 

extendssuperとジェネリックに署名は型パラメータではなく、実際のタイプを制約するために使用されます。 Fragmentがクラスに既に定義されているので、どこでもそれを繰り返す必要はありません。

+0

もちろん、私はそれが必要なので、タイプを制約したいです。例: ' @Override \t \tパブリック文字列のgetTitle(INT位置){ \t \t \tリターンmFragmentList.get(位置).getName(); \t \t} ' – Elad92

+0

待って、' Fragment'が 'Nameable'を実装していないことを意味しますか?そうであれば、行うクラス/インタフェースを作成し、その型のリストを作成します。 – millimoose

+0

いいえ、フラグメントはネーム可能ではありません。 これは少し複雑ですが、Fragmentにはいくつかのサブクラスがあります。このリストにはFragmentsサブクラスとFragmentサブクラスのサブクラスを入れたいと思います(ListFragment extends FragmentとMy classはListFragmentを継承しましょう)。わかりましたか? – Elad92

関連する問題