JJUG CCC 2015 Spring メモ
Timetable / JJUG CCC 2015 Spring(4月11日開催) | 日本Javaユーザーグループ
覚えておきたいところ自分用メモ。
Javaにおけるnull。これまでとこれから (太一氏)
Javaにおけるnull。これまでとこれから - Google スライド
各言語のnullっぽいもの
- SQL
- 3値論理である(true, false, NULL)
- NULLは未知、または、適用不能、をあらわす。値ではない!
- SQL
言語仕様上nullが許されない場所
- Integer i; で i の unboxing
- for (String foo: bar) のbar
- synchronized(x) の x
- throw ex のex
何もないこと、をどうあらわすか
"空"のオブジェクト
- 空文字列
- 空の配列
- 空のListなど。Collections#emptyList()などで得られる。
型のあるnull
- NullObjectパターン。A型に対し、abstract Aと、そのサブクラスRealA、NullA を作る。
- ソースが増えるのがデメリット。
- NullObjectパターン。A型に対し、abstract Aと、そのサブクラスRealA、NullA を作る。
Optional
有効でない値、を受け取ったとき/受け取りうるときどうするか
nullを早期にガード
The Checker Framework にチェックさせる
※ 自分で調べてみたらこんなもの
- nullを考慮して処理