0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】nullポチェックのお話

Last updated at Posted at 2024-06-15

前回投稿した記事で、NullPointerExceptionについて整理しました。
https://qiita.com/saionji-kimochi/private/bdc1671568139352ff84)
↑の記事のまとめで、仕様上nullになる可能性がある場合はnullポチェックを行ってエラー落ちを回避する必要があると書きました。

今回はそのお話です。

やり方

一般的なやり方は、「if文で参照元がnullでなければ参照を行わない」という条件を加えることだと思います。

というか、それ以外知りません。あれば教えてください。

以下具体例です。

int sample = null;

if(sample != null){
    System.out.printLn(sample * 3);
}

このように、中身がnullではない時にのみそれを参照するようにすればnullポで落ちることを回避できます。
また、String型は上記の方法に加えて、isEmpty()メソッドも使うことが出来ます。

String sample = null;
if(sample.isEmpty()){
// 以下略

isEmpty()は、対象の文字列がnullもしくは空文字の場合にtrueを返します。
なので、空文字は許容したいなどの場合にはこれは使用できません。

続いて、オブジェクトをチェックする場合です。

Object obj = null;

if(!Objects.isNull(obj)){
// 以下略

もしくは

Object obj = null;

if(Objects.nonNull(obj)){
// 以下略

このように、ObjectsクラスをのisNullメソッドやnonNullメソッドを使用することで実装できます。
ただし、バージョンの注意は必要みたいです。

まとめ

今回はnullポ落ちを回避するための、チェックのやり方を纏めました。

現在の案件では、Objects.nonNull()を使用することが多いです。

様々な状況に応じて使い分けられるようになればいいですね。

0
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?