5 Stimmen

Welche Java-Syntax ist besser: if (isSomething() == false) { oder if (!isSomething()) {

Wenn Sie sich

if (!x) {
if (x == false) {

Es sieht so aus, als ob !x besser ist, aber

if (!isSomething()) {
if (isSomething() == false) {

können Sie leicht die !

Was ist zu tun? Gibt es eine Empfehlung?

12voto

Die versteckte dritte Option besteht darin, Ihre Variablen und Methoden richtig zu benennen.

Anstelle von

if (!isDisabled()) {
    ...
}

utilice

if (isEnabled()) {
    ...
}

oder wenn Sie auf das Negative prüfen wollen:

boolean disabled = !isEnabled();
if (disabled) {
    ...
}

oder beide Methoden hinzufügen:

boolean isDisabled() {
    return !isEnabled();
}

Edit: Ich habe diese Frage gefunden: Ist es schlecht, explizit gegen boolesche Konstanten zu vergleichen, z. B. if (b == false) in Java?

7voto

McStretch Punkte 20235

Ich würde bei der Notation bleiben if (!isSomething()) { . Wenn es für Sie oder andere schwer zu lesen ist, können Sie immer ein wenig Leerraum um das '!' herum hinzufügen, um es hervorzuheben:

if ( ! isSomething()) { o if ( !isSomething()) {

Außerdem können mehrere bedingte Anweisungen mit der folgenden Notation unübersichtlich werden

if (isSomething() == false && isSomethingElse() == false && ..) ,

während seine Alternative kurz und bündig ist. Nach einer Weile wird es natürlich, das '!' zusammen mit den Anweisungen als "not isSomething() and not isSomethingElse()" zu lesen.

3voto

LaGrandMere Punkte 10177

Ich glaube nicht, dass es eine Empfehlung gibt, die jeder befolgen würde.

Machen Sie es, wie Sie wollen, ich persönlich würde mich für die if (!isSomething()) Stil :)

Zumal ich mich bereits für die if (!x) Stil.

2voto

darioo Punkte 45156
if ( !isSomething() ) {

wäre meiner Meinung nach das Beste. Auf diese Weise halten Sie die Zeichenzahl niedrig, Ihr Code ist lesbar und das ! sticht am Anfang hervor, so dass andere beim Überfliegen des Codes seine Absicht erkennen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X