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」は見送りかな・・。