Javaのジェネリックスは、ソースコードがコンパイルされた後に型情報を消去します。そして、ジェネリック型が何であれ、Javaはクラスのコピーを1つしか保持しないため、「消去」が必要だと思います。つまりList<String>
、またはList<Number>
単に1つのリストです。次に、特定のクラスのコピーを1つだけ保持することを前提として、クラスのインスタンスが作成時にジェネリック型情報を格納する可能性があるのではないかと思います。
例:私たちが書くとき:
List<String> list = new List<String>.
コンパイラは、リストに関連付けられた文字列のクラスオブジェクト(オブジェクトString.classを意味する)とともにリストのオブジェクトを作成します。これにより、汎用オブジェクトリストは、クラスオブジェクトを使用して実行時に型情報を確認できます。それは可能ですか、それとも実行可能ですか?