Headline About TechLog Download Java VBA Link


June 19, 2007. Tuesday.

Javaの格言:【小技】String#equals(String)の上手な使い方

とても細かいことであるが、良くこういうコードを見かけます。


public class Test {
  public static final String AM = "am";
  public static final String PM = "pm";

  public void talk(String type) {
    if (type != null && type.equals(AM)) {
      // 適当な処理
    }
  }
}

typeにnullが渡ってきた時にnull pointer exceptionになるのを防ぐ為ですが、

public class Test {
  public static final String AM = "am";
  public static final String PM = "pm";

  public void talk(String type) {
    if (AM.equals(type)) {
      // 適当な処理
    }
  }
}

こう書くことで "!= null" の処理が不要になります。非常に単純な話なのですが、どうもみんな""で囲まれた文字列やstatic finalな文字列をStringオブジェクトと認識できていない様子。1つ処理が増えると1つバグが増えます。手を抜きましょう。