2回連続で更新します。
今回はプログラミングの話なので、興味がある方は読んでみてください。
Java7が出て結構経ちました。
にも関わらず、私はずっとJava6の機能でプログラミングをしていました。
今の客先に行くようになって、Java7の新機能について調べる機会があったのですが、かなり衝撃を受けました。
今更ではありますが、印象に残った機能をメモしておきます。
1.ダイヤモンド演算子 個人的には一番びっくりしました。
ようは、newする際にジェネリクスの型を省略できるよってことです。
今までは、
List list = new ArrayList();
って書かなければならなかったところが、
List list = new ArrayList<>();
と書けます(MapやIteratorやModelも同様)。
ただ、匿名クラスなどでインスタンス化する場合は省略できないようです。
例えば以下の場合は、型指定は必須です。
return new ArrayList() {
{
add("aaa");
add("bbb");
add("ccc");
}
};
2.switchで文字列判定 switch分のcaseで文字列判定ができるようになりました。
今まではEnumやIntegerでしか判定できなかったものが、単純に以下のように書けます。
switch (param) {
case "aaa":
// 処理
break;
case "bbb":
// 処理
break;
default:
break;
}
3.例外のマルチキャッチ try~catch文での例外処理について、まとめて処理を書けるようになりました。
今までは、たとえ例外処理内容が同一であっても、例外の種類分記述が必要だったので、まとめて書けるようになるとかなりコードがすっきりします。
try {
// 処理A
} catch (SQLException e) {
// 処理B
} catch (NumberFormatException e) {
// 処理B
} catch (IOException e) {
// 処理B
} finally {
// 処理C
}
としていたものが、
try {
// 処理A
} catch (SQLException | NumberFormatException | IOException e) {
// 処理B
} finally {
// 処理C
}
と書けるのです。
他にも数値リテラルに「_」が使えるようになったとか、リソース付きtry文が書けるとか、追加された機能はたくさんあります(気になる方は調べてみてください)。
Java8になればラムダ式も書けるそうなので、今から楽しみです。