職場でequalsの使い方をなんとなく調べたところ、ワンランク上の使い方を発見しましたので話します。もうすでにこんなこと知ってるよ!という方は温かい目で見てください。そして間違いがあればご指摘お願いします。
#equalsメソッド
equalsメソッドは、Stringクラスの文字列を比較する際によく使用するかと思います。
その際に私は今までこのように呼び出していました。
str.equals("hoge");
しかし、この呼び出し方だとstrがnullの場合、nullからequalsを呼び出すためnullPointerExceptionの例外が発生します。
この例外を回避する方法としてif文でnullチェックをするのもアリですが、少しequalsメソッドを変えるだけで例外を回避できちゃいます。
それがこちらです。
"hoge".equals(str);
簡単ですね。strと"hoge"を反対にしているだけです。この呼び出し方だとnullPointerExceptionではなくfalseが返ります。よってnullPointerExceptionの例外が起こることはありません。
#おまけ
今回紹介したのはStringクラスのequalsメソッドですが、Objectクラスのequalsメソッドもあります。
Objects.equals(str1,str2);
こちらの説明はまたの機会に。
#最後に
これからはequalsメソッドを使うときは文字列を先にして呼び出したいと思います。