nullである参照変数からメソッドを呼び出そうとしたり、演算しようとするとNullPointerExceptionが発生します。
いわゆるぬるぽです。
これを防ぐ手段としてif文でチェックするという方法があります。
■NullCheck_01.java
public class NullCheck_01{
public static void main(String[] args) {
String str = null;
if(str != null) {
System.out.println(str.length());
} else {
System.out.println("strはnullです");
}
}
}
これでNullPointerExceptionは発生しなくなります。
しかしこれが複数の値となると条件式を書くのが面倒になります。
そこで、今回は一度に複数の値を一度にnullチェックできる方法をご紹介します。
サンプルはこちら
■NullCheck_02.java
public class NullCheck_02 {
public static void main(String[] args) {
String str1 = "1つ目";
String str2 = "2つ目";
String str3 = "3つ目"
String str4 = "4つ目";
String str5 = null;
if(isNull(str1, str2, str3, str4, str5)) {
System.out.println("nullの値が含まれています");
} else {
System.out.println("nullの値はありません");
}
}
static boolean isNull(String... params) {
for(String param : params) {
if(param == null) {
return true;
}
}
return false;
}
}
■解説
渡された引数がnullかどうかを判定するメソッドisNullメソッドを定義しています。
今回は引数を可変長パラメータで受け取っています。
可変長パラメータを使えばいくつでも引数に値を渡すことができます。
引数の型はStringとなっていますがメソッド内部では配列として扱われます。
あとはfor文でnullが含まれていなかチェックするだけですね。
null以外にも空文字チェックなどで便利なので機会があれば是非使ってみて下さい!