≪Java≫ NULLと空文字の判定

≪Java≫ NULLと空文字の判定

判定の書く順番で実行時エラーになります。

前提として、
equalsは、変数がnullの場合使えない(実行時エラーになる)ので、str==nullという書き方になる。

【正しい書き方】
if(str==null || str.equals(“”))
↑ 先に「str=null」を実行して、(論理演算子が「または」なので)equalsを実行しないのでエラーにならない。

【間違った書き方】
if(str.equals(“”)) || str==null)
↑ 先に「equals」が実行されるので実行時エラーとなる。

≪自分への参考メモ≫
public static void main(String[] args) {

 String [] s, o, p;

 //System.out.println(s); ←コンパイルエラーになる

 s = new String[] {“”};
 o = new String[] {null};
 p = new String[] {“null”};

 System.out.println(“① ” + s);
 System.out.println(“② ” + o);
 System.out.println(“③ ” + p);

 System.out.println(“④ ” + s[0]);
 System.out.println(“⑤ ” + o[0]);
 System.out.println(“⑥ ” + p[0]);

 String ss;

 ss = “”;

 System.out.println(“(1) ” + ss);

 ss = null;

 System.out.println(“(2) ” + ss);

 ss = “null”;

 System.out.println(“(3) ” + ss);

}

↓実行結果
 ① [Ljava.lang.String;@193385d
 ② [Ljava.lang.String;@5973ea
 ③ [Ljava.lang.String;@c9131c
 ④
 ⑤ null
 ⑥ null
 (1)
 (2) null
 (3) null



引っ越し前の記事
シェアする
senをフォローする
プレミア商品・お得商品情報局(予約・再販情報も)


タイトルとURLをコピーしました