カテゴリー:
Java
閲覧数:413 配信日:2013-06-23 11:33
混乱しやすい
型変数にまつわる記述はだいたい<>で囲われている。一見して同じように見えるが<>は場所によって数種類に分類される
- | 種類 | 用語 | 例 | 宣言 | バインド | ? | 境界 | & |
---|---|---|---|---|---|---|---|---|
1 | 型変数の宣言 | _ | _ | ◯ | × | △*1 | ◯ | ◯ |
2 | 型変数へのバインド | _ | new Hoge<String>(); | × | ◯ | × | × | × |
3 | 変数の型の宣言 | ジェネリック型(generic type) | List<T> | × | ◯ | ◯ | ◯ | × |
3 | 変数の型の宣言 | パラメータ化された型(parameterized type) | List<String> | × | ◯ | ◯ | ◯ | × |
4 | 型変数での変数宣言 | 型変数の宣言 | ジェネリック型(generic type) | × | × | × | × | × |
<T> <E>
プログラムする際、具体的なクラス名に置き換えて使用する
<E> の場合は要素(Element)の型を指定するので「E」
<K,V> の場合はキー(Key)と値(Value)の型を指定するので「K」「V」
・javaのジェネリックスでTとEの違いが良く分かりません<K,V> の場合はキー(Key)と値(Value)の型を指定するので「K」「V」
T for type, E for Element, V for value and K for key
・Difference between List, List<?>, List<T>, List<E>, and List<Object>