Javaのgenericsは中途半端で使えないことが明らかになったようだ。
C#の方が柔軟で強力で、generics対応のソースも公開されてるし。