http://objectclub.esm.co.jp/JavaGenerics/ でJavaの総称の解説を発見しました。
JVMの互換性を保つためとはいえ、型情報が失われるのは嫌ですね…。
実行時例外が起きるなら、結局ダウンキャストの手間を省いているだけのような…。

しかし、コードサイズが型毎に増えずにすむのも事実。
内部ではObjectクラスにBoxingしてコードは共有、型識別子みたいなものは別々に作るみたいに
…駄目だ、それでもパラメータとして与えられた型を実体化できない…。

やっぱコードサイズは犠牲にするしか無いのでしょうか。