技術情報
How to get the more specific return type of a overridden method?
Javaのgenericsはある型Xの型引数へより具体的な型を代入して得られる全ての部分型Yを実行時に同一視する。つまり、全てのYのための実行時型がXになるのだ。このような実現方法をとると、実行時に各Yを区別できないという欠点はあるが、genericsを導入する前と互換性を保てるという利点がある。これがJavaのgenericsの妥協点である。この妥協点のおかげで、型引数に代入された型の情報が得られないため、リフレクション使いとしては歯がゆい思いをすることになる。
(さらに…)