If / Else in Setter?

internet

Top Contributor
Hallo,

ich habe eine API Abfrage (Chargebee API) wie folgt:

Java:
    Result result2 = Customer.create()
                    .company(mandatory.getCompanyName())
                    .request();

In folgendem Setter:
.company(mandatory.getCompanyName())

würde ich gerne eine Abfrage machen und prüfen, ob bspw. "mandatory" nicht null ist, also wie:
Code:
if(mandatory == null)
  return null
else
  mandatory.getCompanyName()

Klar, kann ich davor mehrere Strings anlegen und die Abfrage oben bereits machen - aber geht das auch direkt in dem ersten Code oben?
 

Robert Zenz

Top Contributor
Man kann sich auch eine Hilfsfunktion anlegen:

Java:
Result result2 = Customer.create()
        .company(getCompanyNameIfExists(mandatory))
        .request();

// ---

private String getCompanyNameIfExists(Mandatory mandatory) {
    if (mandatory == null) {
        return null;
    } else {
        return mandatory.getCompanyName();
    }
}
 

internet

Top Contributor
Man kann sich auch eine Hilfsfunktion anlegen:

Java:
Result result2 = Customer.create()
        .company(getCompanyNameIfExists(mandatory))
        .request();

// ---

private String getCompanyNameIfExists(Mandatory mandatory) {
    if (mandatory == null) {
        return null;
    } else {
        return mandatory.getCompanyName();
    }
}
genau das wollte ich ja nicht :)
Der Vorschlag von KonradN passt ;)
 

LimDul

Top Contributor
Alternativ kann man für sowas auch immer Optional verwenden.

Java:
Optional mandatoryOptional = Optional.ofNullable(mandatory);
   Result result2 = Customer.create()
                    .company(mandatory.map(Mandatory::getCompanyName).orElse(null))
                    .request();
Ist hier eventuell Overkill, aber Optional ist aus meiner Sicht Ideal, wenn man in einem Objektgeflect navigieren will und da zwischendurch null kommen kann.
 

Oneixee5

Top Contributor
Man kann sich auch eine Hilfsfunktion anlegen:

Java:
Result result2 = Customer.create()
        .company(getCompanyNameIfExists(mandatory))
        .request();

// ---

private String getCompanyNameIfExists(Mandatory mandatory) {
    if (mandatory == null) {
        return null;
    } else {
        return mandatory.getCompanyName();
    }
}
Else nach Return erzeugt einen Riss in der Matrix!
 

KonradN

Super-Moderator
Mitarbeiter
Ist hier eventuell Overkill, aber Optional ist aus meiner Sicht Ideal, wenn man in einem Objektgeflect navigieren will und da zwischendurch null kommen kann.
Ja, Optional ist meist besser wie der Umgang mit null Werten.

Aber es hat sich beim Tippen im Forum bei Dir ein kleiner Fehler eingeschlichen: in dem Aufruf musst Du dann natürlich auch mandatoryOptional nutzen und nicht mandatory.
 

KonradN

Super-Moderator
Mitarbeiter
Der Vorschlag von @KonradN passt ;)

Da möchte ich dann aber auch noch einmal kurz eine Bewertung abgeben. Ich habe halt nur an die technische Seite gedacht und da kommt dann so ein Konstrukt in Frage. Aber im Rahmen von Clean Code wird sowas eher ungern verwendet. Code wird so nun einmal deutlich unleserlicher.

Um Probleme mit null Werten zu umgehen, ist da tatsächlich oft die bessere Lösung, da generell mit Optional zu arbeiten. Damit vermeidest Du die null Prüfung und kannst die Methoden von Optional nutzen (wie z.B. das .map und so).

Und da man Code direkt lesen will, will man da halt im Code stehen haben: Nimm für die Firma den Namen der Firma wenn er existiert. Das wird direkt verstanden. So eine Methode ist auch wiederverwendbar und der Code wird sehr gut lesbar.

Das sind dann auch Refactorings, die man oft findet. Ein Beispiel eiens Refactorings ist da z.B. bei dem FizzBuzz, dass man die Prüfung auf
number % 3 == 0 in eine Methode verlagert "isFizz" um dann Code zu haben wie:
if (isFizz(number)) return FIZZ_VALUE;

==> Super lesbar und es gibt die die Möglichkeit, es direkt im Code zu dokumentieren. So findet sich dann in dem JavaDoc Kommentar ein Hinweis zu der Regel, wann eine Zahl durch FIZZ ersetzt wird. Evtl. noch ein Hinweis, dass eine Zahl, die true bei isFizz ist auch true bei isBuzz sein kann. Und die Umsetzung der Regel könnte auch separat getestet werden in den Unit Tests.

Das nur als genereller Hinweis, denn neben dem reinen lernen willst Du evtl. auch in dem Bereich etwas aktiv sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
M If-Else Java Basics - Anfänger-Themen 5
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
laxla123 If-else Java Java Basics - Anfänger-Themen 4
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
pumpgun99 Fehler Meldung "else without if" Java Basics - Anfänger-Themen 3
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Übung Else if Java Basics - Anfänger-Themen 2
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
F if else if anfängerfrage Java Basics - Anfänger-Themen 22
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
C Problem mit If Else If und Überprüfung eines Counters Java Basics - Anfänger-Themen 3
T "Einkauf" & if else Struktur Java Basics - Anfänger-Themen 7
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
A break; mit Einfluss hinter else if Block Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
C Variablen 'else' without 'if' Java Basics - Anfänger-Themen 4
F If - Else Java Basics - Anfänger-Themen 3
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K Frage zu If & else if Java Basics - Anfänger-Themen 5
R else if anweisungen Java Basics - Anfänger-Themen 2
Y Problem mit If-Else Verzweigung! Java Basics - Anfänger-Themen 9
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
Hijo2006 If-else Java Basics - Anfänger-Themen 6
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
T If/ Else If (zurückkehren) Java Basics - Anfänger-Themen 4
O Grosse If / Else verschachtelung übersichlitcher gestlten Java Basics - Anfänger-Themen 6
S Erste Schritte Unterschied "if" und "else if" Java Basics - Anfänger-Themen 27
M If in einem else Java Basics - Anfänger-Themen 14
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
J Mehrere IF Anweisungen und dazugehörige ELSE Java Basics - Anfänger-Themen 6
C else in if umschreiben Java Basics - Anfänger-Themen 2
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
E If...else... Java Basics - Anfänger-Themen 7
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C If Else Frage Java Basics - Anfänger-Themen 2
M if, else Anweisung Java Basics - Anfänger-Themen 3
J Ergebnis wird gespammt sowie eine else if Frage Java Basics - Anfänger-Themen 2
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
V Operatoren Java if-else argument Java Basics - Anfänger-Themen 4
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
P [ANFÄNGER] if else funktioniert nicht Java Basics - Anfänger-Themen 4
T If, else Problem Java Basics - Anfänger-Themen 12
C IF-Else Verknüpfungen Java Basics - Anfänger-Themen 10
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
L else without if Fehler Java Basics - Anfänger-Themen 14
F try/catch - (else) Java Basics - Anfänger-Themen 11
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
S if und else problem... Java Basics - Anfänger-Themen 13
Q if-else Logikproblem Java Basics - Anfänger-Themen 4
M Probleme mit else if Java Basics - Anfänger-Themen 15
M Erste Schritte Break-Anweisung bei if-else Java Basics - Anfänger-Themen 6
B OOP If und else in Main class einbinden Java Basics - Anfänger-Themen 9
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
K Bedingungen else Java Basics - Anfänger-Themen 7
B if-else in einer schleife Java Basics - Anfänger-Themen 14
J Erste Schritte If-Else Idee gesucht Java Basics - Anfänger-Themen 6
T if else Java Basics - Anfänger-Themen 8
R boolean, if-else Java Basics - Anfänger-Themen 7
M if then else geht nicht Java Basics - Anfänger-Themen 10
P int-Wertevergleich mit if-else-Verzweigung Java Basics - Anfänger-Themen 3
P If-else-Verzweigung Java Basics - Anfänger-Themen 9
E Compiler-Fehler Fehler: else without if Java Basics - Anfänger-Themen 11
D Java Einsteiger (boolean, if-else etc.) Java Basics - Anfänger-Themen 7
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
K Mal wieder ein Problem mit If / Else Java Basics - Anfänger-Themen 10
K Anfänger If / Else Problem Java Basics - Anfänger-Themen 5
C if else Abfrage Java Basics - Anfänger-Themen 11
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
C Schleifen, if, else......? Java Basics - Anfänger-Themen 8
2 if und else Java Basics - Anfänger-Themen 9
L If/else nicht korrekt ausgeführt. Java Basics - Anfänger-Themen 22
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
S Brauche Hilfe bei if/else Java Basics - Anfänger-Themen 3
S if-else Java Basics - Anfänger-Themen 22
A ein if else problem Java Basics - Anfänger-Themen 13
N If-else-If Leiter Java Basics - Anfänger-Themen 9
U Dringend: Syntax error on token "else" Java Basics - Anfänger-Themen 8
L if else anweisung Java Basics - Anfänger-Themen 2
M If/Else mit Zahlenfolge Java Basics - Anfänger-Themen 13
B Problem mit Variable und if/else Java Basics - Anfänger-Themen 6
H alternativen zu if .. else .. Java Basics - Anfänger-Themen 11
J Geschachtelte If-Else Anweisung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben