最終更新:2009-09-21 (月) 00:14:17 (4135d)  

Project Coin
Top / Project Coin

Java7?の細かな言語仕様?の変更を扱う

変更点

Javaの次のバージョンである7のリリースで、変更として認められたものである。

  • 自動リソース管理(ARM:Automatic Resource Management):リソースクリーンアップの機構を提供する。ARMブロックはC#?のusingステートメントに似ているが、tryステートメントの形式に基づいている。結果として、usingステートメントが単独のリソースしか扱えないのに対して、ARMは与えられたブロックのスコープで複数のリソースを制御することができる。
  • 整数リテラルの改善:可読性を上げるため、バイナリリテラルと数値内のアンダースコア区切りのサポートを追加した。例えば以下のように記述できる。

long creditCardNumber? = 1234_5678_9012_3456L.

記号なしリテラルの制御も、期間内に解決法が見つかれば改善されるかもしれない。

  • コレクションリテラル:サポートが追加されるのは、不変リスト("immutable list")、配列の初期化に似たシンタックスによるセットとマップリテラルである。さらに、リストとマップに対するインデックスによるアクセスのサポートも追加されるかもしれない。
  • ジェネリックのインスタンス生成時に用いられる型推論の改善(< > またはダイアモンド):インスタンス生成時に制限された型推論を用いる。これによってパラメタ化された型をコンストラクタ用に明示的に宣言しなければいけない場所でも、文脈から確定できる場合には空の型パラメタで置き換えることができる。
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

上記の代わりに、以下のように書ける。

Map<String, List<String>> anagrams = new HashMap<>();
  • JSR292?のための言語サポート:ここにはinvokedynamic命令、メソッドハンドル呼び出し、特定の変換の緩和、エキゾチック識別子が含まれる。
  • 可変引数のメソッド呼び出しの簡素化:可変引数が具現化できない配列型と結びつけられている場合には警告が発せられるが、それについてコンパイラが変更される。変更によって警告は呼び出し箇所からメソッド宣言に移動される。
  • Switch句におけるString型のサポート

参考