Ich weiß, dass es eine Möglichkeit gibt, eine Java-Anweisung if
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?
Verwenden Sie den ternären Operator:
name = ((city.getName() == null) ? "N/A" : city.getName());
Ich denke, Sie haben die Bedingungen rückwärts - wenn es null ist, möchten Sie den Wert "N/A".
Was ist, wenn die Stadt null ist? Ihr Code * trifft in diesem Fall auf das Bett. Ich würde noch einen Scheck hinzufügen:
name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
Der Weg dazu ist mit einem ternären Operator:
name = city.getName() == null ? city.getName() : "N/A"
Ich glaube jedoch, dass Sie einen Tippfehler in Ihrem Code oben haben, und Sie meinen damit:
if (city.getName() != null) ...
Um zu vermeiden, .getName()
zweimal aufzurufen, würde ich verwenden
name = city.getName();
if (name == null) name = "N/A";
Das ? : Operator in Java
In Java schreiben Sie vielleicht:
if (a > b) {
max = a;
}
else {
max = b;
}
Das Festlegen einer einzelnen Variablen auf einen von zwei Zuständen basierend auf einer einzigen Bedingung ist eine solche häufige Verwendung von if-else, dass eine Abkürzung für sie erstellt wurde, der Bedingungsoperator? Mit dem Bedingungsoperator können Sie das obige Beispiel in eine einzige Zeile wie folgt umschreiben:
max = (a > b) ? a : b;
(a> b)? a: b; ist ein Ausdruck, der einen von zwei Werten zurückgibt, a oder b. 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 von der bedingten Prüfung ab, a> b. Die Bedingung kann ein beliebiger Ausdruck sein, der einen booleschen Wert zurückgibt.
Ich vergesse immer, wie man den ?:
ternary Operator verwendet. Diese ergänzende Antwort ist eine schnelle Erinnerung. Es ist eine Abkürzung für if-then-else
.
myVariable = (testCondition) ? someValue : anotherValue;
woher
()
enthält die if
?
bedeutet then
:
bedeutet else
Es ist das gleiche wie
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
in Java 8:
name = Optional.ofNullable(city.getName()).orElse("N/A")
name = (city.getName() != null) ? city.getName() : "N/A";
Sie können if, else if, else
-Anweisungen in Kurzform schreiben. Zum Beispiel:
Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";
Dies ist eine Kurzform von:
Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
isCapitalName = "";
} else if(isCapital) {
isCapitalName = "Capital";
} else {
isCapitalName = "City";
}
name = ( (city.getName() == null)? "N/A" : city.getName() );
zuerst wird die Bedingung (city.getName() == null)
geprüft. Wenn ja, dann wird "N/A"
dem Namen oder einfach name="N/A"
zugewiesen, oder der Wert von city.getName()
wird dem Namen zugewiesen, d. H. name=city.getName()
.
Dinge hier zu sehen:
(city.getName() == null)?
. Hier steht das Fragezeichen direkt nach der Bedingung. Leicht zu sehen/lesen/sogar erraten!:
) und Wert rechts vom Doppelpunkt (a) Wert links vom Doppelpunkt wird zugewiesen, wenn die Bedingung wahr ist, andernfalls wird der Wert rechts vom Doppelpunkt der Variablen zugewiesen. hier ist eine Referenz: http://www.cafeaulait.org/course/week2/43.html
hier ist ein Zeilencode
name = (city.getName() != null) ? city.getName() : "N/A";
hier ist ein Beispiel, wie es funktioniert. Führen Sie den Code in der js-Datei aus und verstehen Sie das Ergebnis. Dieser ("Data" != null)
ist eine Bedingung wie in der normalen if()
und "Data"
eine Anweisung, wenn diese Bedingung wahr wurde. Dieser " : "
fungiert als else und "N/A"
ist eine Anweisung für die else-Bedingung. Hoffe, das hilft dir, die Logik zu verstehen.
name = ("Data" != null) ? "Data" : "N/A";
console.log(name);
Verwenden Sie org.Apache.commons.lang3.StringUtils:
name = StringUtils.defaultString(city.getName(), "N/A");
Einfach und klar:
String manType = hasMoney() ? "rich" : "poor";
lange Version:
String manType;
if (hasMoney()) {
manType = "rich";
} else {
manType = "poor";
}
oder wie ich es verwende, um für andere Codeleser klar zu sein:
String manType = "poor";
if (hasMoney())
manType = "rich";
Sie können Klammern und Zeilenumbrüche entfernen.
if (city.getName() != null) name = city.getName(); else name = "N/A";
Sie können?: Operatoren in Java verwenden.
Syntax:
Variable = Condition ? BlockTrue : BlockElse;
In Ihrem Code können Sie also Folgendes tun:
name = city.getName() == null ? "N/A" : city.getName();
Konditionsergebnis für Boolean zuordnen
boolean hasName = city.getName() != null;
EXTRA: für neugierige
In einigen Sprachen, die auf Java
wie Groovy
basieren, können Sie folgende Syntax verwenden:
name = city.getName() ?: "N/A";
Sie können dies in Groovy
tun, denn wenn Sie nach dieser Bedingung fragen:
if (city.getName()) {
//returns true if city.getName() != null
} else {
//returns false if city.getName() == null
}
Der Operator ?:
weist also den von der Bedingung zurückgegebenen Wert zu. In diesem Fall der Wert von city.getName()
, falls es nicht null
ist.
Sie können den ternären Operator in Java verwenden.
Syntax:
Condition ? Block 1 : Block 2
So können Sie in Ihrem Code so machen,
name = ((city.getName() == null) ? "N/A" : city.getName());
Für weitere Informationen können Sie this resource beziehen.