Java7のNullチェック

ひがやすをさんのJava7はしょぼくなりそうを読んで。

nullチェックが入ったのは良いんだけどね。

ん?なんだろう、nullチェックというのは。「入る機能」として引用されている部分を読んでみると・・・

Null dereference expressions - Null checks with '?' syntax similar to Groovy... lettign developers avoid a nest of null checks.

あらら。なにやら面白そう。Groovyに似た「?」文法でNullチェックが行えるとある。というわけでGroovyで試してみた。

name = null;
len = name.size();  // これはNullPointerExceptionが発生
len = name?.size(); // これはlenにnullが代入された。例外は発生せず。

おぉー。こんな機能があったのか!これが導入されることで以下のようなnullチェックのネストから開放されるわけね♪

if (name != null) {
  len = name.size();
}

以下は三項演算子バージョン。

len = (name != null) ? name.size() : null;

JAM

ところで、
JARがJAMに進化する! - Java SE 7で導入されるJava Module Systemを探る
で紹介されていたJSR-277「Java Module System」は見送りかな・・。