読者です 読者をやめる 読者になる 読者になる

argius note

プログラミング関連

開発しています



"string".equals(String)がキライ

Java

http://d.hatena.ne.jp/nattow/20070806/1186409436
 (http://d.hatena.ne.jp/Isoparametric/20070806/1186404586 経由)

「NullPointerExceptionでnullを検知しようとする考えがそもそも間違い」であると思います。null が来てはいけないならしかるべき場所で検査済みであるべきです。つまり、ここで null チェックが必要となるのでは、おそらく設計がまずいのです。

StringもObjectの一種で、例外を認めないってことかなとも思いますが、Stringがnullという状態を機能として受け入れるのに凄く抵抗があります。非対称であることもその理由のひとつかもしれません。JavaのStringは使いやすいだけに、残念です。
こんなメソッドがあれば良かったのに、といつも思います。

public static boolean equals(String s1, String s2) {
    if (s1 == null || s2 == null) {
        return false;
    }
    return s1.equals(s2);
}

あまり関係ないですが、String.isEmpty()もJava1.6になってお出まし。