SSブログ

境界ワイルドカード [Java]

プログラミング言語Java (The Java Series)

プログラミング言語Java (The Java Series)

  • 作者: ケン・アーノルド
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/04
  • メディア: 単行本

本書の224頁の9行目に境界ワイルドカード(bounded wildcard)に関して次の制約が記述されています。
境界のある型変数と異なり、境界ワイルドカードは1 つの境界しか持つことができません。つまり、
1 つの上限境界か1 つの下限境界のどちらかです。たとえば、少なくともクラスValue であると同時 にSerializable を実装している要素を含んでいるリストの型に制限したいとしても、List<? extends Value & Serializable>とすることはできません。
実際には、直接的には、1つの境界しか持つことができないのですが、次のように代替することができます。

<T extends Value & Serializable> void foo(List<? extends T>)

なぜ、1つの境界しか持つことができないかについて、Neal Gafterに聞いたところ、複数の境界が指定できる箇所を制限したかったからだそうです。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0