パンくず
型変数
List
型引数
List
型変数名の慣例
変数名 | 由来 |
---|---|
E | element |
K | key |
V | value |
T | type |
境界のある型パラメータ
基底クラスもしくは、インターフェ−スの型を限定することが出来る。
複数あるばあいあは&でつなげることが可能。
クラスとインターフェースを同時に指定する場合はクラスを先に書きます。
E extends Parent E extends ParentA & ParentB E extends ParentImpl & ParentIntf
型引数のワイルドカード
上位型の変数に買い型のオブジェクトを指定可能になる。
ワイルドカードのサンプルコード
package perfect.generics; import java.util.ArrayList; import java.util.List; public class SampleGenerics { public static void main(String[] args) { List<? extends Parent> list; List<ChildA> listA = new ArrayList<ChildA>(); listA.add(new ChildA()); List<ChildB> listB = new ArrayList<ChildB>(); listB.add(new ChildB()); list = listA; System.out.println(list.get(0).getClass()); list = listB; System.out.println(list.get(0).getClass()); } }
出力
class perfect.generics.ChildA class perfect.generics.ChildB