hamabose 2012-08-28 17:26:38

[Java] メソッド名でミスリード このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

不思議なコメント、変なネスト、戻り値はbooleanじゃダメなの?、ジェネリクスの必然性といったところが突っ込み所でしょうか。

private static MarkEnum getListSizeMerker(List<?> arg1, List<?> arg2) {
    // Nullチェック
    if (arg1 == null || arg2 == null) {
        if (arg1 == null && arg2 != null) {
            return MarkEnum.CONST_A;
        } else if (arg1 != null && arg2 == null) {
            return MarkEnum.CONST_A;
        } else {
            return MarkEnum.CONST_B;
        }
    }
    if (arg2.size() == arg1.size()) {
        return MarkEnum.CONST_B;
    } else {
        return MarkEnum.CONST_A;
    }
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(2)

#1 CoolDriverJPN 2012-08-28 23:06:36  

boolean じゃなくて enum を使うのが正しい、というのは意外と多い。
2値だからといって、true / false で本来表現できないものを boolean にするのは良くない。拡張性とか、可読性とかで。

それ以外は、アレだな、うん。

#2 hamabose 2012-08-29 14:59:24  

コメントありがとうございます。 2値だからといってTrue/Falseで返却するのは確かに盲目的ですね。

このメソッドの場合、2つのリストサイズをチェックしているだけなので、ユーティリティとしての用途かと思いました。
なので、このメソッドの呼び出し側が返却値を見てどのEnumに該当するかを判断すべきかな、と思い至った第です。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[JavaScript] -1 is true なんです。

このエントリーをはてなブックマークに追加

indexOf が悪いのか、 -1 を ...

if(navigator.userAgent.toLowerCase().i...

鑑賞する »

[PHP] つ、釣り!?

このエントリーをはてなブックマークに追加

ツボって思い出し笑いが止まらなかったので...

class Hoge {
    /*
      * インストラクター
...

鑑賞する »

[JavaScript] よくある失敗、よくみる失敗。

このエントリーをはてなブックマークに追加

**この気持ち、分かってもらえるはず...

var a=true;var b=[1,2,3];var c="12";var ...

鑑賞する »