JDK 5 の拡張機能
- 総称 - 長い間待たれていた型システムの機能拡張です。 型またはメソッドで、コンパイル時の型保証を備えながら、さまざまな型のオブジェクトで操作できます。コンパイル時の型保証が Collections Framework に追加され、キャスト操作の煩雑さをなくしました。「Generics Tutorial」を参照してください。JSR 14)
- 拡張された
for
ループ - この新しい言語構造により、コレクションや配列で反復処理を行う際の、反復子およびインデックス変数の煩雑さやエラー発生の可能性がなくなりました。(JSR 201)
- オートボクシング / アンボクシング機能 - この機能により、プリミティブ型 (int など) とラッパー型 (Integer など) の間の手動変換の煩雑さをなくしました。(JSR 201)
- 型保証された列挙 - この柔軟なオブジェクト指向の列挙型では、任意のメソッドやフィールドを持つ列挙された型を作成できます。煩雑さやエラー発生の可能性なしで、Typesafe Enum パターン (「Effective Java」第 21 項) のすべての利点を実現しています。(JSR 201)
- 可変引数 - この機能では、可変長の引数リストを許可するメソッドを呼び出すときに、手動で引数リストを配列に閉じ込める必要がありません。
- static のインポート - この機能では、static メンバーをクラス名で修飾する必要がなく、「Constant Interface Antipattern」の欠点もありません。(JSR 201)
- 注釈 (メタデータ) - この言語機能を使用すると、多くの場合に常用コードを記述する必要がありません。 常用コードは、ソースコードの注釈からツールを使用して生成されます。これにより、プログラマが何をしなければならないか、という「宣言型の」プログラミング方法が実現され、そのコードはツールが生成します。また、ソースファイルの変更に合わせて最新の状態にしておかなければならない「付属ファイル」を保守する必要がありません。その代わりに、必要な情報はソースファイル内で保守します。(JSR 175)
注:@Deprecated
注釈を使用すると、プログラムの要素を非推奨にできます。「いつ、どのように API を 非推奨とするか」を参照してください。
総称に関する情報
-
JSR14:Adding Generic Types to the Java Programming Language
- 「Making the Future Safe for the Past: Adding Genericity to the Java Programming Language」(PDF)
Bracha, Odersky, Stoutamire, and Wadler. OOPSLA 98, Vancouver, October 1998. (他の形式)
- 「GJ: Extending the Java Programming Language with Type Parameters」(PDF)
Bracha, Odersky, Stoutamire, and Wadler. A tutorial on GJ. August 1998. (他の形式)
- 「Adding Generics to the Java Programming Language」(PDF)
Bracha.JavaOne 2003 プレゼンテーションのスライド。
- 「Adding Wildcards to the Java Programming Language」(PDF)
Torgersen, Hansen, Ernst, Ahe, Bracha and Gafter.An ACM paper, 2004.
一般的な情報
- アサーション機能 - アサーションは、プログラマがコンピュータプログラムの特定の状態を検証するための boolean 式です。たとえば、リストをソートした後に、プログラマはそのリストが昇順であることを表明します。実行時にアサーションを評価して妥当性を確認する方法は、コードの品質を向上させるもっとも強力な方法の 1 つで、プログラムの動作に関するプログラマの誤解をただちに検出することができます。