it-swarm.com.de

Kurzform für Java if-Anweisung

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?

145
Makky

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());
320
duffymo

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) ...
22
Sam Goldberg

Um zu vermeiden, .getName() zweimal aufzurufen, würde ich verwenden

name = city.getName();
if (name == null) name = "N/A";
21
Peter Lawrey

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;
}
13
Suragch

in Java 8:

name = Optional.ofNullable(city.getName()).orElse("N/A")
13
digitebs
name = (city.getName() != null) ? city.getName() : "N/A";
6
shift66

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";
}
6
OctopusSD
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:

  1. bedingung ist in der Klammer gefolgt von einem Fragezeichen. Deshalb schreibe ich (city.getName() == null)?. Hier steht das Fragezeichen direkt nach der Bedingung. Leicht zu sehen/lesen/sogar erraten!
  2. wert links vom Doppelpunkt (:) 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

3

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);

2
Waqas Qayum

Verwenden Sie org.Apache.commons.lang3.StringUtils:

name = StringUtils.defaultString(city.getName(), "N/A");
2
Paul Rambags

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";
2
Vasile Doe

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.

1
IgniteCoders

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.

0
Shiva