Краткая форма для заявления if Java - PullRequest
165 голосов
/ 17 января 2012

Я знаю, что есть способ записать оператор Java if в краткой форме.

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

Кто-нибудь знает, как записать краткую форму для вышеуказанных 5 строк в одну строку?

Ответы [ 15 ]

2 голосов
/ 14 мая 2018

Вы можете удалить скобки и разрывы строк .

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

Можно использовать ?: операторы в Java.

Синтаксис:

Variable = Condition ? BlockTrue : BlockElse;

Таким образом, в вашем коде вы можете сделать так:

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

Назначить результат условия для Логическое

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

ДОПОЛНИТЕЛЬНО: для любопытных

В некоторых языках, основанных на JAVA, таких как Groovy, вы можете использовать этот синтаксис:

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

Вы можете сделать это в Groovy, потому что если вы попросите об этомусловие:

if (city.getName()) {
    //returns true if city.getName() != null
} else {
    //returns false if city.getName() == null
}

Таким образом, оператор ?: присваивает значение, возвращаемое из условия.В этом случае значение city.getName(), если оно не null.

2 голосов
/ 06 ноября 2017

Просто и понятно:

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

длинная версия:

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

или как я использую это, чтобы быть понятным для других читателей кода:

 String manType = "poor";
    if (hasMoney())
        manType = "rich";
2 голосов
/ 03 августа 2017

Использовать org.apache.commons.lang3.StringUtils:

name = StringUtils.defaultString(city.getName(), "N/A");
0 голосов
/ 05 февраля 2018

Вы можете использовать троичный оператор в Java.

Синтаксис:

Condition ? Block 1 : Block 2

Так что в вашем коде вы можете сделать это,

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

Для получения дополнительной информации вы можете обратиться к этому ресурсу.

0 голосов
/ 17 января 2012
name = city.getName()!=null?city.getName():"N/A"
...