最終更新:2013-02-06 (水) 23:40:57 (4095d)  

J2SE 5.0
Top / J2SE 5.0

2004年9月30日リリース

http://java.sun.com/j2se/1.5.0/ja/index.html

サポート終了

J2SE 5.0 は、2009 年 11 月 3 日付けで EOSL (End of Servie Life) となり、J2SE 5.0 Update 22 がバージョン 5.0 最後の公式更新リリースとなりました。

変更点

  • 総称型 (Java/ジェネリクス) : コンパイル時に静的にコレクションオブジェクトでその要素となるオブジェクトの型を安全に取り扱うことができるようになった。ほとんどの場合において型変換(キャスト)を行う必要は無くなった。JSR 14?で規定された。
  • オートボクシング/アンボクシング? : int型のような基本型(primitive type)とIntegerクラスのようなラッパクラスの間の変換が自動的に行われるようになった。JSR 201?で規定。
  • 列挙型? : enumキーワードにより、Javaで安全な列挙型を実現するデザインパターンであるタイプセーフenumパターンが言語レベルでサポートされ、列挙型(順序つきリストの値、多くの場合は定数)を安全に定義することができる。このタイプセーフenumパターンの詳細は、ジョシュア・ブロックほか(2001)pp.97-106 「第5章 項目21 enum構文をクラスで置き換える」を参照。以前のバージョンまではこのような場合、タイプセーフではない整数の定数値で定義するか、プログラマが自分でタイプセーフenumパターンで実装するかの、どちらかの方法しか無かった。JSR 201で規定。
  • 可変引数? : メソッドの最後の引数を、型名に続けて3個のドットを記述することで可変個数の引数渡しの記述ができるようになった(例: void drawText(String... lines))。メソッド呼び出しにおいて、最後の引数に関してはその型の任意の個数のパラメタを渡すことができる。その際、実際には内部的に最後の引数は配列としてメソッドに渡される。
  • メタデータ : 注釈(アノテーション)とも言い、クラスやメソッドに、"@" でタグ付けされた付加的な情報を記述することができるようになる。メタデータを扱うツールで処理することにより、決まった型のコードを生成することができるようになり、Javaによる開発で機械的な作業を減らして開発効率を上げることができる。JSR 175で規定。
  • import static
  • 拡張for文(for-each文): for文によるループの構文が拡張された。配列やコレクションオブジェクト(ListやSetなど)の各要素オブジェクトに対して、反復(繰り返し)処理をする専用の構文を使うことで、コーディングを簡略化しミスを減らすことができるようになった。この構文を使う場合コレクションは、配列か、Iterable?インタフェースを実装したコレクションオブジェクトである必要がある。この構文を使ったコーディング例を示す。
    void displayWidgets (Iterable<Widget> widgets) {
        for (Widget w : widgets) {
            w.display();
        }
    }
    • この例では、widgets という変数名のコレクションオブジェクト内の、各Widgetオブジェクトを反復して繰り返し処理する。各Widgetオブジェクトにはループサイクルごとに w という変数名をつける。各ループサイクルで、w に対してWidget型で定義されているdisplay()メソッドを呼び出す。拡張forループはJSR 201で規定された。