谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

Java7での小さな言語仕様の変更について。

[TS-4060]Small Language Changes in JDK Release 7
http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-4060&yr=2009
Project Coin。Java7での言語仕様などの変更について。


Java7の大きな仕様変更や機能追加については話題になるけど、
小さな仕様変更はなかなか話題にならず、目新しいものも多かったセッション。
以下に内容を書くけど、どれがJava7に実際入るかは未定。


数値にバイナリや、桁区切りを入れられるようにする。

int a = 0b10101;
long big = 9_223_372_000 


Nullセーフの操作。

Integer i = aaa.getValue() ? Integer.valueOf(10);


Switch文で、Stringを使えるようにする。

(分かるだろうから、省略)


あと、以下はジョシュアブロックによる提案。


リソースの自動クローズ。

try (InputStream in = new FileInputStream(src)) {
  // 処理
}

これでin.closeを書かなくても、自動的にクローズする。


ListやMapに添え字アクセスできるようにする。

List<Integer> list = ...;
Integer value = list[0];


Listを配列風に宣言する。

List<String> list = ["a", "b", "c"]; 

そういえば、このセッションでは紹介されなかったけど、
General SessionではMapのこんな宣言の仕方も提案されてた。

Map<String, Map<Integer, List<String>>> map = new HashMap<>(); 


Project Coinは膨大すぎて、調整が大変らしい。
自分たちも、内容を一個一個見ていくのはしんどすぎるので、
ひとまず、どうなるか様子見。