※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

4. 型と値と変数

4.1. 型と変数の種類

4.2. プリミティブ型と値

4.3. 参照型と値

4.4. 型変数

4.5. 引数付き型

4.6. 型の抹消

型の抹消(type erasure)とは型(引数付き型と型変数を含んでもよい)から型(引数付き型や型変数を含まない)へのマッピングです。型Tの抹消を|T|と記します。抹消マッピングを以下に定義します。

  • 引数付き型G<T1,...,Tn>の抹消とは|G|です。
  • 入れ子にされた型T.Cの抹消とは|T|.Cです。
  • 配列型T[]の抹消とは|T|[]です。
  • 型変数の抹消とはその最も左の制限の抹消です。
  • 他の全ての型の抹消とはその型そのものです。

型の抹消はコンストラクターやメソッドのシグネチャーを引数付き型や型変数を持たないシグネチャーにマップすることも指します。コンストラクターやメソッドのシグネチャーsの抹消とはsと同じ名前を残しs内の他の仮引数の型を全て抹消したものです。

コンストラクターやメソッドの型引数(8.4.4.)やメソッドの戻り型も、そのコンストラクターやメソッドのシグネチャーが抹消されるならば抹消されます。

ジェネリックメソッドのシグネチャーの抹消では型引数を持ちません。

4.7. 具象可能型

4.8. 未加工型

4.9. 交差型

4.10. サブタイプ化

4.11. 型の使用箇所

4.12. 変数