5 Stimmen

Was ist eine bessere Java-Syntax: if (isSomething() == false) { oder if (!isSomething()) {

Wenn du dir ansiehst

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

Sieht es so aus, als ob !x besser ist, aber

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

kannst du leicht das ! übersehen

Was ist zu tun? Gibt es eine Empfehlung?

0 Stimmen

Einige der Antworten in dieser Frage behandeln dieses Problem. programmers.stackexchange.com/questions/12807/…

12voto

Die versteckte dritte Option besteht darin, Ihre Variablen und Methoden ordnungsgemäß zu benennen.

Statt

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

verwenden Sie

if (isEnabled()) {
    ...
}

oder wenn Sie das Negative überprüfen möchten:

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

oder fügen Sie beide Methoden hinzu:

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

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

0 Stimmen

+1 Ja, ich denke, wenn du eine Funktion hast, ist es besser, sie so zu gestalten, dass du überprüfst, ob der Rückgabewert true ist, anstatt zu prüfen, ob er nicht false ist, wie z.B.: if(isEnabled()){}

7voto

McStretch Punkte 20235

Ich würde bei der Notation if (!isSomething()) { bleiben. Wenn es für dich oder andere schwer zu lesen ist, kannst du immer ein wenig Leerzeichen um das '!' hinzufügen, um es hervorzuheben:

if ( ! isSomething()) { oder if ( !isSomething()) {

Zusätzlich können mehrere bedingte Aussagen mit der folgenden Notation überwältigend werden

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

während die Alternative kurz und prägnant ist. Nach einer Weile wird es natürlich, das '!' zusammen mit den Aussagen als "nicht isSomething() und nicht isSomethingElse()" zu lesen.

0 Stimmen

+1 für den Trick mit den Leerzeichen um "!". Daran habe ich nie gedacht, aber es kann nützlich sein :)

3voto

LaGrandMere Punkte 10177

Ich glaube nicht, dass es eine Empfehlung gibt, der jeder folgen würde.

Mach es auf deine Art, persönlich würde ich den if (!isSomething()) Stil wählen :)

Vor allem, da ich bereits den if (!x) Stil gewählt habe.

0 Stimmen

+1 für das Konsistenzargument. Komm schon, LaGrandMere, fast 1000 ;)

0 Stimmen

@VonC : Danke Kumpel, es ist erledigt, ich habe meine ersten 1000 Punkte bekommen :)

0 Stimmen

Ja, ausgezeichnet! Jetzt, wenn Sie nur das "Hi!" verlieren könnten ;) Dann passen Sie besser zum Geist dieser Frage-und-Antwort-Seite (nur Antworten).

2voto

darioo Punkte 45156
if ( !isSomething() ) {

wäre meiner Meinung nach am besten. Auf diese Weise halten Sie die Zeichenanzahl niedrig, Ihr Code ist lesbar und das ! sticht am Anfang heraus, so dass andere allein beim Überfliegen des Codes dessen Absicht sehen 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