Korte vorm voor Java if-statement

Ik weet dat er een manier is om een Java if-statement in korte vorm te schrijven.

if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

Weet iemand hoe je de korte vorm voor de bovenstaande 5 regels in één regel schrijft?


Antwoord 1, autoriteit 100%

Gebruik de ternaire operator:

name = ((city.getName() == null) ? "N/A" : city.getName());

Ik denk dat je de voorwaarden omgekeerd hebt – als het null is, wil je dat de waarde “N/A” is.

Wat als stad nul is? Uw code * raakt in dat geval het bed. Ik zou nog een vinkje toevoegen:

name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());

Antwoord 2, autoriteit 8%

Om te voorkomen dat ik .getName()twee keer aanroep, zou ik

. gebruiken

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

Antwoord 3, autoriteit 7%

De manier om dit te doen is met de ternaire operator:

name = city.getName() == null ? city.getName() : "N/A"

Ik geloof echter dat je een typefout hebt gemaakt in je bovenstaande code, en je bedoelt te zeggen:

if (city.getName() != null) ...

Antwoord 4, autoriteit 6%

De ? : operator in Java

In Java zou je kunnen schrijven:

if (a > b) {
  max = a;
}
else {
  max = b;
}

Instellen van een enkele variabele tot een van de twee staten op basis van een enkele voorwaarde is een gemeenschappelijk gebruik van IF-anders waarvoor een snelkoppeling ervoor is, de voorwaardelijke operator, ?:. Met behulp van de voorwaardelijke operator kunt u het bovenstaande voorbeeld in een enkele regel als volgt herschrijven:

max = (a > b) ? a : b;

(A & GT; B)? A: B; is een uitdrukking die een van de twee waarden, A of B retourneert. De toestand, (A & GT; B), wordt getest. Als het waar is, wordt de eerste waarde, A, geretourneerd. Als het onjuist is, wordt de tweede waarde, B, geretourneerd. Welke waarde wordt geretourneerd, is afhankelijk van de voorwaardelijke test, A & GT; B. De voorwaarde kan elke uitdrukking zijn die een Booleaanse waarde retourneert.


Antwoord 5, Autoriteit 5%

Ik ben altijd vergeten hoe u de ?:ternary-operator . Dit aanvullende antwoord is een snelle herinnering. Het is steno voor if-then-else.

myVariable = (testCondition) ? someValue : anotherValue;

waar

  • ()HOUDT DE if
  • ?betekent then
  • :betekent else

Het is hetzelfde als

if (testCondition) {
    myVariable = someValue;
} else {
    myVariable = anotherValue;
}

Antwoord 6, Autoriteit 5%

In Java 8:

name = Optional.ofNullable(city.getName()).orElse("N/A")

Antwoord 7, Autoriteit 3%

1. U kunt haakjes en lijnbrekes verwijderen.

if (city.getName() != null) name = city.getName(); else name = "N/A";

2. U kunt gebruiken?: Operators in Java.

syntaxis:

Variable = Condition ? BlockTrue : BlockElse;

Dus in uw code kunt u dit doen:

name = city.getName() == null ? "N/A" : city.getName();

3. Assign Conditie Resultaat voor Boolean

boolean hasName = city.getName() != null;

extra: voor nieuwsgierig

In sommige talen op basis van JAVAals Groovy, kunt u deze syntaxis gebruiken:

name = city.getName() ?: "N/A";

De operator ?:Wijs de waarde toe die is geretourneerd van de variabele waar we om vragen. In dit geval, de waarde van city.getName()als het niet nullis.


Antwoord 8, Autoriteit 2%

U kunt if, else if, elseverklaringen in het korte formulier. Bijvoorbeeld:

Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";      

Dit is een korte vorm van:

Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
    isCapitalName = "";
} else if(isCapital) {
    isCapitalName = "Capital";
} else {
    isCapitalName = "City";
}

Antwoord 9

name = (city.getName() != null) ? city.getName() : "N/A";

Antwoord 10

Gebruik org.apache.commons.lang3.StringUtils:

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

Antwoord 11

hier is een regelcode

name = (city.getName() != null) ? city.getName() : "N/A";

hier is een voorbeeld van hoe het werkt, voer onderstaande code uit in het js-bestand en begrijp het resultaat. Deze ("Data" != null)is een voorwaarde zoals we doen in de normale if()en "Data"is een statement toen deze voorwaarde werd waar. this " : "handelt als else en "N/A"is een statement voor else. Ik hoop dat dit je helpt om de logica te begrijpen.

name = ("Data" != null) ? "Data" : "N/A";
console.log(name);

Antwoord 12

name = ( (city.getName() == null)? "N/A" : city.getName() );

Ten eerste de aandoening (city.getName() == null)wordt gecontroleerd. Zo ja, dan wordt "N/A"toegewezen aan naam of eenvoudig name="N/A"of anders de waarde van city.getName()is toegewezen aan naam, dwz name=city.getName().

Dingen om hier te kijken:

  1. -voorwaarde is in haakjes gevolgd door een vraagteken. Daarom schrijf ik (city.getName() == null)?. Hier is het vraagteken vlak na de toestand. Makkelijk te zien / lezen / raden, zelfs!
  2. Waarde links van Colon (:) en waarde recht op dikke darm
    (a) Value Left of Colon is toegewezen wanneer de conditie waar is, anders is het waarderecht van dikke darm toegewezen aan de variabele.

Hier is een referentie: http://www.cafeaulait.org/course/week2 /43.html


Antwoord 13

Simple & AMP; Wissen:

String manType = hasMoney() ? "rich" : "poor";

Lange versie:

     String manType;
    if (hasMoney()) {
        manType = "rich";
    } else {
        manType = "poor";
    }

of hoe ik het gebruik om duidelijk te zijn voor andere codelezers:

String manType = "poor";
    if (hasMoney())
        manType = "rich";

Antwoord 14

name = city.getName()!=null?city.getName():"N/A"

Other episodes