Java-generics-type-erasure
提供:Dev Guides
Javaジェネリック-型消去
ジェネリックは、コンパイル時の厳密な型チェックに使用され、ジェネリックプログラミングを提供します。 一般的な動作を実装するために、Javaコンパイラは型消去を適用します。 型消去は、コンパイラがジェネリックパラメータを実際のクラスまたはブリッジメソッドに置き換えるプロセスです。 型消去では、コンパイラは余分なクラスが作成されず、実行時のオーバーヘッドがないことを保証します。
タイプ消去ルール
- バインドされた型パラメーターが使用されている場合、ジェネリック型の型パラメーターをバインドされた型に置き換えます。
- 制限のない型パラメーターが使用されている場合、ジェネリック型の型パラメーターをオブジェクトに置き換えます。
- 型キャストを挿入して、型の安全性を維持します。
- ブリッジメソッドを生成して、拡張ジェネリック型のポリモーフィズムを維持します。