LoginSignup
0

More than 1 year has passed since last update.

javaでStringとintを文字列結合する場合は、nullチェックを必ずしましょう

Posted at

仕事をしていた時に、バグとして出ていた現象です。

NULLチェックをしていないのが悪い、テストしてないのが悪い
という結論なのですが、意識はしておかないと気付きにくいなと思って、備忘録として保存します。

javaではStringとintをそのまま結合した場合、文字列扱いで結合する。

以下のように、文字型と数値をそのまま結合した場合、文字列扱いで結合してしまう。
intの場合などはプリミティブなので、nullは入れることができません。
そのため、特に型変換などをしなくてもまぁなんとかなってしまったりします(;^ω^)。
image.png

ただし参照型(Integer)などでnullを入れた場合はどうなってしまうのか?

Integerの場合は、数値型ですからもちろんそのまま結合します
つまり、nullという文字列を結合します(´・ω・)。
image.png

ちなみに文字列で型変換するようにしても、文字列結合してしまうので結局NULLという文字列で結合されてしまいます。
image.png

数値+数値の場合は足し算しようとする

この場合、もちろんnullは計算できないので、nullPointerExceptionになります。
image.png

結論

nullチェックを忘れずに行いましょう。

おまけ

見た目は35という結果ですが、これは3と5を文字列結合しただけです。
本当にこの処理方法は正しいか?というのは、デバッグなどで確認してからOKを出しましょう。
image.png

過程や方法などどうでもいいのだ!!と言ってしまえばそれだけなんですけど(´・ω・)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0