Ich weiß, dass es eine Möglichkeit gibt, eine Java- if
Anweisung in Kurzform zu schreiben .
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Weiß jemand, wie man die Kurzform für die obigen 5 Zeilen in eine Zeile schreibt?
if
Logik falsch verstanden.if (city.getName()!=null){name = city.getName();}else{name="N/A"}
if (city.getName()!= null) name = city.getName(); else name="N/A";
Antworten:
Verwenden Sie den ternären Operator:
Ich denke, Sie haben die Bedingungen rückwärts - wenn es null ist, möchten Sie, dass der Wert "N / A" ist.
Was ist, wenn die Stadt null ist? Ihr Code * trifft in diesem Fall das Bett. Ich würde noch einen Scheck hinzufügen:
quelle
name = city.getName() == null ? "N/A" : city.getName();
name = city.getName()==null ? "N/A" : city.getName()
String cityName = city.getName();
werfen ? Ich würde daher sagen, dass Ihre mittlere Lösung definitiv die beste ist (PS und ich sind mit den "unnötigen" Klammern einverstanden! Die Leute müssen sich daran erinnern, dass 99% der Codierung mit anderen Leuten (und Ihrem zukünftigen Selbst) kommuniziert, nicht mit dem Compiler - ansonsten wir würden c verwenden!)NullPointerException
city == null
Um nicht
.getName()
zweimal anzurufen, würde ich verwendenquelle
city.setName(null)
. Ihre Antwort erledigt das ordentlich.Der Weg, dies zu tun, ist mit dem ternären Operator:
Ich glaube jedoch, dass Sie oben einen Tippfehler in Ihrem Code haben, und Sie wollen sagen:
quelle
In Java könnten Sie schreiben:
Das Setzen einer einzelnen Variablen auf einen von zwei Zuständen basierend auf einer einzelnen Bedingung ist eine so häufige Verwendung von if-else, dass eine Verknüpfung für sie, den bedingten Operator, erstellt wurde. Mit dem bedingten Operator können Sie das obige Beispiel in einer einzigen Zeile wie folgt umschreiben:
(a> b)? a: b; ist ein Ausdruck, der einen von zwei Werten a oder b zurückgibt. Die Bedingung (a> b) wird getestet. Wenn es wahr ist, wird der erste Wert a zurückgegeben. Wenn es falsch ist, wird der zweite Wert, b, zurückgegeben. Welcher Wert zurückgegeben wird, hängt vom bedingten Test ab, a> b. Die Bedingung kann ein beliebiger Ausdruck sein, der einen booleschen Wert zurückgibt.
quelle
in Java 8:
quelle
Ich vergesse immer, wie man den
?:
ternären Operator benutzt . Diese ergänzende Antwort ist eine kurze Erinnerung. Es ist eine Abkürzung fürif-then-else
.wo
()
hält dieif
?
meintthen
:
meintelse
Es ist das gleiche wie
quelle
Sie können
if, else if, else
Anweisungen in Kurzform schreiben . Beispielsweise:Dies ist eine Kurzform von:
quelle
Syntax:
In Ihrem Code können Sie also Folgendes tun:
ZUSÄTZLICH: für Neugierige
In einigen Sprachen, die auf
JAVA
like basierenGroovy
, können Sie diese Syntax verwenden:Der Operator
?:
weist den von der gewünschten Variable zurückgegebenen Wert zu. In diesem Fall der Wert voncity.getName()
wenn nichtnull
.quelle
quelle
Zunächst wird der Zustand
(city.getName() == null)
überprüft. Wenn ja,"N/A"
wird der Name oder einfach zugewiesen, odername="N/A"
der Wert voncity.getName()
wird dem Namen zugewiesen, d. H.name=city.getName()
.Dinge, die Sie hier beachten sollten:
(city.getName() == null)?
. Hier steht das Fragezeichen direkt nach der Bedingung. Einfach zu sehen / zu lesen / sogar zu raten!:
) und Wert rechts von Doppelpunkt (a) Wert links von Doppelpunkt wird zugewiesen, wenn die Bedingung erfüllt ist, andernfalls wird der Wert rechts von Doppelpunkt der Variablen zugewiesen.Hier ist eine Referenz: http://www.cafeaulait.org/course/week2/43.html
quelle
Hier ist ein Zeilencode
Hier ist ein Beispiel, wie es funktioniert, führen Sie den folgenden Code in der js-Datei aus und verstehen Sie das Ergebnis. Dies
("Data" != null)
ist eine Bedingung wie im Normalfallif()
und"Data"
eine Aussage, wann diese Bedingung erfüllt wurde. Dies" : "
wirkt wie sonst und"N/A"
ist eine Aussage für eine andere Bedingung. Hoffe das hilft dir die Logik zu verstehen.quelle
Verwenden Sie org.apache.commons.lang3.StringUtils:
quelle
Einfach und klar:
lange Version:
oder wie ich es benutze, um anderen Codelesern klar zu sein:
quelle
Sie können den ternären Operator in Java verwenden.
Syntax:
In Ihrem Code können Sie also Folgendes tun:
Weitere Informationen finden Sie in dieser Ressource.
quelle
quelle