BT

Project Coinが小さな言語仕様の変更に関する最終リストを公表

| 作者: Charles Humble , 翻訳者 和智 右桂 投稿日 2009年9月7日. 推定読書時間: 1分未満 |

原文(投稿日:2009/09/02)へのリンク

Joseph Darcy氏はProject Coinの最終リストを公開した。これはJavaの次のバージョンである7のリリースで、変更として認められたものである。

  1. 自動リソース管理(ARM:Automatic Resource Management):リソースクリーンアップの機構を提供する。ARMブロックはC#のusingステートメントに似ているが、tryステートメントの形式に基づいている。結果として、usingステートメントが単独のリソースしか扱えないのに対して、ARMは与えられたブロックのスコープで複数のリソースを制御することができる。
  2. 整数リテラルの改善:可読性を上げるため、バイナリリテラル数値内のアンダースコア区切りのサポートを追加した。例えば以下のように記述できる。
    long creditCardNumber = 1234_5678_9012_3456L.
    記号なしリテラルの制御も、期間内に解決法が見つかれば改善されるかもしれない。
  3. コレクションリテラル:サポートが追加されるのは、不変リスト("immutable list")、配列の初期化に似たシンタックスによるセットとマップリテラルである。さらに、リストとマップに対するインデックスによるアクセスのサポートも追加されるかもしれない。
  4. ジェネリックのインスタンス生成時に用いられる型推論の改善(< > またはダイアモンド):インスタンス生成時に制限された型推論を用いる。これによってパラメタ化された型をコンストラクタ用に明示的に宣言しなければいけない場所でも、文脈から確定できる場合には空の型パラメタで置き換えることができる。
    Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
    上記の代わりに、以下のように書ける。
    Map<String, List<String>> anagrams = new HashMap<>();
  5. JSR292のための言語サポート:ここにはinvokedynamic命令、メソッドハンドル呼び出し、特定の変換の緩和、エキゾチック識別子が含まれる。
  6. 可変引数のメソッド呼び出しの簡素化:可変引数が具現化できない配列型と結びつけられている場合には警告が発せられるが、それについてコンパイラが変更される。変更によって警告は呼び出し箇所からメソッド宣言に移動される。
  7. Switch句におけるString型のサポート

これらの提案の大部分は、2009年10月の終わりまでに、JDK7の開発Mercurialリポジトリに含まれることが期待されている。

最終候補として挙げられていたもので、最終リストに含まれなかったものが3つある。改善されたJavaの例外処理Elvisとその他Null-Safeな演算子巨大な配列だ。

Joseph Darcy氏は以下のようにコメントしている

「改善された例外処理は、言語にとってみれば良い変更だったでしょう。しかしこれは型システムに迫るものであり、JDK7の機能として仕上げるだけのリソースがあるかどうか見積もることができませんでした。言語を発達させるため努力が今後も続き、そこで再び改善された例外処理が考慮されることを期待します。Elvisと関連する演算子はGroovyにおいて役立つものでした。しかし、GroovyとJavaの違い、例えばプリミティブ型の存在やボクシング/アンボクシングの相互関係といったもののため、Javaではこれらの演算子がそれほど使えません。JDK7ではnullハンドリングの苦労を和らげる他の方法をサポートします。これには、JSR308で可能になったnullチェックなどが該当します。32-bit以上をネイティブにサポートするAggregate型はリストに挙げられる価値があるもので、今後さらに必要とされることは間違いありません。コレクション型に対する言語サポートによって、プラットフォームが直接巨大なデータ構造を扱うようになるまでは、このような機能はライブラリとして開発することができます。」

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT