神は計算をされている
「私だ」
「お前だったのか」
「また騙されたな」
「全く気付かなかったぞ」
「暇を持て余した」
「神々の」
「遊び」
ということで、どうもボクです。
Javaの演算で、null の処理ってどうなるんじゃろか?って質問を、職場の同僚の方に聞かれて、はて?どうなるんだろうか?と思ったので、調べてみました。
以外に、ネットの情報が少ないという...初歩的なことなのかしら?私は、Java の演算におけるnull の挙動がどうなるのか、知りませんでしたけど(涙)。
というわけで、今宵もJavaのお話です。レッツトライ~。
プリミティブ型?そんなの関係ねぇ!
はい、オッパッピー!
参照型の特徴のひとつとしてnull
をもつことができます。プリミティブ型はnull
をもつことができません。
ということで、プリミティブ型はそもそも null が代入されることがないので考慮せずともOK。
プリミティブ型のラッパークラス(いわゆる参照型というやつ)
これは、考慮せねばですね。ここでは、Integerクラスで検証してみます。
はい、そもそも、null は計算できない子らしい...
関数型インターフェイス使っても、
null は計算されない子であると...。
BigIntegerでは?(いわゆる参照型というやつ)
いざ。
はい、駄目でした...。
BigDecimalでは?(いわゆる参照型というやつ)
いざ。
はい、駄目でした...。
NullPointerException を回避するには、デフォルト値みたいなのを決め打ちしとかないと駄目みたいですね...
つまり、null だった場合にも計算を続けたいときは、null 以外のものに置き換える必要があるのだと。
三項演算子の繰り返しとか、むちゃくちゃ可読性が悪い気がする...なんか素直に if 文とか使ったほうが良さげですかね...
結論
null は計算に含むことができない?、と思う。
そんなわけで、今回もモヤモヤ感が半端ない1日でしたかね...
今回はこのへんで。