(snip)
http://d.hatena.ne.jp/bleis-tift/20090731/1249037236
今まで、Java では型パラメータは単純に Object になるものだと思っていたんだけど、もしかして extends 使うと一番左側のクラスになる・・・?
ちょっと気になったので、JLS(3rd Edition)を調べてみました。すると、4.6 Type Erasureのところに、こんな記述が。
(snip)
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.6
The erasure of a type variable (§4.4) is the erasure of its leftmost bound.
型パラメータでextends使って(複数の)境界を指定した場合、型パラメータのErasureは境界の一番左側の型(のErasure)になる、ということのようですね。つまり、型パラメータTがT extends A & B & ...の場合、erasure(T) = erasure(A)になると。