かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Java 7が出たみたいです!

ラムダが導入されないため、個人的ながっかり感が大きなJava 7ですが無事リリースされたみたいです。個人的には以下の機能が気に入ってます。

  • 例外のマルチキャッチ
    • catch (HogeException | MogeException ex) { ... }
  • 例外の再送
    • (final Throwable t) { ...; throw t; }でメソッド宣言にthrows Throwableがいらない!
  • ジェネリックの型推論
    • 大体の言語が左辺値の型の記入を省略できるようにしてる中Javaは右辺を省略するアプローチ。
    • Map m = new HashMap<>();
  • リソースの確実な解放(Closableインターフェース)
    • try (FileStream fs = new FileStream(...)) { ... }
    • 今まではtry catch finallyが必須だったよね
  • NIO2
    • ファイル扱う時に凄い便利な小物が沢山
  • Fork/Joinフレームワーク
    • MapReduceパターン的なことをやりやすくしてくれるライブラリ。

大体の機能がC#やF#には、すでにあったよ〜的な感じなので、やっとかな・・・。という感じもあったりしますが、こういう慎重に進化をしていくのがJavaらしさなのかな。
Java8でのラムダに期待!