【nullって何だろう?】


1.きっかけ

このテーマを選んだきっかけは、新人エンジニアを教育してた時に、nullの説明を求められて、何も言えなかったからw

String A = null;
String B = "";

String型にnullと””(空文字)を設定した時に、何が違うのかを説明出来なかったので、そこを掘り下げて自分の理解を深めます。(その時の自分は、”null”は値がないこと、””は空文字だよ、と答えをしました。反省。。)

2.NullPointerException

俗に言う”ヌルポ”って、どういう時に起こるんでしょうか。例としてはこんな感じ。

public class Sample {
    public static void main(String[] args) {
        String str = null;
        System.out.println(str.length());
    }
}

nullでメソッドを実行しようと思うと、NullPointerExceptionが出ます。(nullはいかなるメソッドも使えない)なので、もしnullの値が設定される可能性があれば、以下のコードのように”nullチェック”なるチェック処理を入れるのが一般的だと思います。

public class Sample {
    public static void main(String[] args) {
        String str = strMake();
        if (str != null) {
            System.out.println(str.length());
        } 
    }
    private static String strMake () {
        return null; // 何か処理を書く
    }
}

3. 文字列クラスに用意されているメソッド

Stringクラスには、色々なメソッドが用意されてます。
防備録として、参考サイトのリンクを貼っておきます。

【公式ドキュメント】
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

4.文字列型 = 参照型

“JavaにおけるString型は、参照型なので、空の文字列("")と参照先なし(null)の2つに区別される。参照型にnullが入っている状態では、メソッドが呼べない為、nullが入っていないかチェックする(=nullチェック)をする必要がある。”
←新人さんにはこのような説明をして行こうと思います。