このHow Generics works in Java
セクションで は、
Java コンパイラは、ジェネリックを使用して記述されたコードを検出すると、そのコードを完全に消去し、生の型、つまりジェネリックを使用しないコードに変換します。タイプに関連するすべての情報は、消去中に削除されます。したがって、ArrayList は JDK 1.5 より前の単純な古い ArrayList になります。たとえば、正式な型パラメーターは、型のオブジェクトまたはスーパー クラスのいずれかに置き換えられます。
私の質問は最後の行についてです - formal type parameters e.g. <K, V> or <E> gets replaced by either Object or Super Class of the Type
。
それらはどの場合に Object に置き換えられ、どの場合にオブジェクト タイプのスーパー クラスに置き換えられますか?
アップデート :
以下のようなワイルドカードがあるとどうなりますか?
List<? extends Foo>