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をStringオブジェクトと認識できていない様子。1つ処理が増えると1つバグが増えます。手を抜きましょう。

戻る

Copyright (c) 2004 barista All rights reserved.