総称型

Java 5.0以降で総称型が加わって、それなりに便利なところもあるのだが、extendsとかupperとか*とか意味不明な機能が多いのは困ったものだ。また、静的チェックにこだわりすぎて、List.classとかかけないのも不便だし、Typeインターフェイスの使いにくさもイケテない。あれだけの期間検討してきた割には非常にイマイチな仕様だ。

また、コンパイル時に総称型を使わないとWarningが出るのも困ったものだ。あれのおかげでJava 5.0以前のライブラリやソースコード心理的に使いにくくなったし。

そういえば列挙型も微妙だ。旧来のint型列挙を使っているクラスも多いので、今更感が漂う。もっと言えば、列挙型を使う状況なんてそれほど多いわけではないし、ドキュメントに書いてあれば間違える人なんてほとんどいないわけで、そんなところの型を厳密にする必然性はほとんどない。Java5で同じく加わったstaticインポートで十分だ。

AutoBoxingは便利だし、Annotationのおかげで自由度が広がっていることは疑いなく、今更Java5以前には戻る気はないのだけれど。結局、型制約を強くしすぎるのも考え物ということなのかも。