LoginSignup
4
0

More than 5 years have passed since last update.

【nullって何だろう?】

Last updated at Posted at 2018-03-10

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チェック)をする必要がある。”
←新人さんにはこのような説明をして行こうと思います。

4
0
2

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
4
0