今週になってJava 1.5b1が発表され、だんだんとJava 1.5が近づいてきました。僕にとってのJava 1.5の大きな目玉はやはりGenericsと拡張for文です。Genericは簡単に言うと「コレクション型(ListとかVectorとか)に、あらかじめ中に入れる型を指定しておける」ということなんですが、これによってコレクション型から何かオブジェクトを取り出すときにキャストが不要になるという利点があります。キャストが不要・イコール・型チェックがきちんと行われるので保守性が上がる、ということなんですね。

PythonやらPHPやらをかじってしまった僕に取っては「JavaIteratorは使いにくい」という悩みもありまして、拡張for文はそれを解決できるものになっています。

List list = new ArrayList();
for (int i=0; i<10; i++) {
   list.add(new Integer(i));
}
for (Object o : list) {
   System.out.println((Integer) o);
}
みたいな書き方ができるんですね。while文で「まだデータがあるならば・・・」みたいな書き方をしていたのが、拡張for文のおかげでちょっと簡単になりました。Java 1.5の新機能に関してはJ2SE 1.5 虎の穴が詳しいです。