Короткая форма для Java, если заявление
Я знаю, что есть способ для написания на Java if
заявление в краткой форме.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
кто-нибудь знает, как написать в краткой форме выше 5 строк в одну строку?
15 ответов:
используйте тернарный оператор:
name = ((city.getName() == null) ? "N/A" : city.getName());
Я думаю, что у вас есть условия назад - если это null, вы хотите, чтобы значение было "N/A".
Что делать, если город равен нулю? Ваш код * попадает в кровать в этом случае. Я бы добавил еще один чек:
name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
способ сделать это с помощью тернарного оператора:
name = city.getName() == null ? city.getName() : "N/A"
однако, я считаю, что у вас есть опечатка в вашем коде выше, и вы хотите сказать:
if (city.getName() != null) ...
чтобы не звонить
.getName()
дважды я бы использовалname = city.getName(); if (name == null) name = "N/A";
В ? : оператор в Java
в Java вы можете написать:
if (a > b) { max = a; } else { max = b; }
установка одной переменной в одно из двух состояний на основе одного условия является таким распространенным использованием if-else, что для него был разработан ярлык, условный оператор,?:. Используя условный оператор, вы можете переписать приведенный выше пример в одну строку следующим образом:
max = (a > b) ? a : b;
(a > b)? a: b; - это выражение, которое возвращает одно из двух значений, a или b. Условие (a > b) проверяется. Если это правда, то возвращается первое значение a. Если значение равно false, возвращается второе значение b. Какое бы значение ни возвращалось, оно зависит от условного теста a > b. условием может быть любое выражение, возвращающее логическое значение.
Я всегда забываю, как использовать
?:
тернарный оператор. Этот дополнительный ответ является быстрым напоминанием. Это сокращение отif-then-else
.myVariable = (testCondition) ? someValue : anotherValue;
здесь
()
держитif
?
означаетthen
:
означаетelse
он же
if (testCondition) { myVariable = someValue; } else { myVariable = anotherValue; }
можно писать
if, else if, else
отчетность в краткой форме. Например:Boolean isCapital = city.isCapital(); //Object Boolean (not boolean) String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";
Это короткая форма:
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() );
во-первых, условие это. Если да, то
"N/A"
присваивается имя или простоname="N/A"
или же значение отcity.getName()
присваивается имя, т. е.name=city.getName()
.вещи, чтобы посмотреть здесь:
- условие в скобках вопросительный знак. Вот почему я пишу
(city.getName() == null)?
. Здесь вопросительный знак находится сразу после условия. Легко увидеть/прочитать/угадать даже!- значение слева от двоеточия (
:
) и правильное значение толстой кишки (a) значение слева от двоеточия присваивается, когда условие истинно, иначе значение справа от двоеточия присваивается переменной.
использовать org.апаш.палата общин.lang3.StringUtils:
name = StringUtils.defaultString(city.getName(), "N/A");
просто и ясно:
String manType = hasMoney() ? "rich" : "poor";
версия:
String manType; if (hasMoney()) { manType = "rich"; } else { manType = "poor"; }
или как я использую его, чтобы быть ясным для других читателей кода:
String manType = "poor"; if (hasMoney()) manType = "rich";
Вы можете использовать тернарный оператор в Java.
синтаксис:
Condition ? Block 1 : Block 2
Так что в вашем коде вы можете сделать вот так,
name = ((city.getName() == null) ? "N/A" : city.getName());
для получения дополнительной информации вы можете обратиться этой ресурсов.
вы можете удалить скобки и разрывы строк.
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
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
.
вот одна строка кода
name = (city.getName() != null) ? city.getName() : "N/A";
вот пример, как это работает, запустите ниже код в js-файле и понять результат. Это
("Data" != null)
это состояние, как мы делаем в нормальномif()
и"Data"
это утверждение, когда это условие стало истинным. это" : "
действуйте как еще и"N/A"
это оператор для условия else. Надеюсь, это поможет вам понять логику.name = ("Data" != null) ? "Data" : "N/A"; console.log(name);