11

私は特に理由もなくこれを F3 しましたが、このメソッドが次のように実装されているのを見て驚きました。

public static boolean isTrue(Boolean bool) {
        if (bool == null) {
            return false;
        }
        return bool.booleanValue() ? true : false;
    }

なぜだめですか?

public static boolean isTrue(Boolean bool) {
        if (bool == null) {
            return false;
        }
        return bool.booleanValue();
    }

あまり関係ないので何かメリットあるのかな?読みやすさは十分に弱い議論です。これはノイズだと思います。私が見逃している他の利点がない限り。

4

3 に答える 3

2

正当な理由が見つかりません。

Java の API 仕様には次のように書かれています。

public boolean booleanValue()

この Boolean オブジェクトの値を boolean プリミティブとして返します。

したがって、bool オブジェクトが次の場合:

Boolean bool = new Boolean(true);

これは同等です:

bool.booleanValue() == true;

ここでの 3 項コンパレータは冗長であり、可読性が低下します。

于 2012-10-11T10:13:31.120 に答える
1

確かに、コードでは、アトミック操作が 1 つ少なくなります。良い説明については、これを参照してください: https://stackoverflow.com/a/493258/1509129

于 2012-10-11T10:09:33.640 に答える