(str変数).equalsと(str定数).equals(str変数)の違い

816 ワード

私たちは2文字列が同じかどうかを判断しながら、String.equalsを使用します。
ここで注意したいのは、あるString変数があるString定数に等しいかどうかを検証するとき、equalsメソッドの前後の順序も重要である。
例えば、以下のように
public static void main(String[] args) {
		String username=null;
		if(username.equals("hehe")){
			System.out.println("Found");
		}else{
			System.out.println("Not Found");
		}
	}
私達の変数usernameがnullの時、プログラムコンパイルは空のポインターの異常を報告します。
Exception in thread「main」java.lang.Null PointerException    at cn.yue.base.simple.PostEqual.main(PostEqual.java:6)
私たちはプログラムを下記の書き方に変えました。
public static void main(String[] args) {
		String username=null;
		if("hehe".equals(username)){
			System.out.println("Found");
		}else{
			System.out.println("Not Found");
		}
	}
プログラム実行結果は以下の通りです。
Not Found