Краткая форма для оператора Java If
Я знаю, что есть способ для написания java if statement в короткой форме
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Кто-нибудь знает, как написать короткую форму для выше 5 строк в одну строку...
Ответы
Ответ 1
Используйте тернарный оператор:
name = ((city.getName() == null) ? "N/A" : city.getName());
Я думаю, что у вас есть условия назад - если это нулевое значение, вы хотите, чтобы значение было "N/A".
Что делать, если город недействителен? В этом случае ваш код * попадает на кровать. Я бы добавил еще одну проверку:
name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
Ответ 2
Способ сделать это с помощью тройного оператора:
name = city.getName() == null ? city.getName() : "N/A"
Однако, я считаю, что у вас есть опечатка в вашем коде выше, и вы хотите сказать:
if (city.getName() != null) ...
Ответ 3
Чтобы избежать вызова .getName()
дважды, я использовал бы
name = city.getName();
if (name == null) name = "N/A";
Ответ 4
Что?: оператор в 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. Если оно ложно, возвращается второе значение b. Какое бы значение не возвращалось, зависит от условного теста a > b. Условие может быть любым выражением, которое возвращает логическое значение.
Ответ 5
Я всегда прошу прощения, как использовать тернарный оператор ?:
. Этот дополнительный ответ - быстрое напоминание. Это сокращение от if-then-else
.
myVariable = (testCondition) ? someValue : anotherValue;
где
-
()
содержит if
-
?
означает then
-
:
означает else
Это то же самое, что и
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
Ответ 6
name = (city.getName() != null) ? city.getName() : "N/A";
Ответ 7
Вы можете написать операторы 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";
}
Ответ 8
в java 8:
name = Optional.ofNullable(city.getName()).orElse("N/A")
Ответ 9
name = ( (city.getName() == null)? "N/A" : city.getName() );
во-первых, проверяется условие (city.getName() == null)
. Если да, то "N/A"
присваивается имя или просто name="N/A"
, иначе ему присваивается значение из city.getName()
, т.е. name=city.getName()
.
Что посмотреть здесь:
- условие находится в скобках, за которыми следует знак вопроса. Вот почему я пишу
(city.getName() == null)?
. Здесь знак вопроса сразу после условия. Легко видеть/читать/угадывать даже!
- Значение слева от двоеточия (
:
) и значение справа от двоеточия
(a) значение слева от двоеточия назначается, когда условие истинно, иначе право переменной двоеточия назначается переменной.
здесь ссылка: http://www.cafeaulait.org/course/week2/43.html
Ответ 10
Используйте org.apache.commons.lang3.StringUtils:
name = StringUtils.defaultString(city.getName(), "N/A");
Ответ 11
Простой и понятный:
String manType = hasMoney() ? "rich" : "poor";
длинная версия:
String manType;
if (hasMoney()) {
manType = "rich";
} else {
manType = "poor";
}
или как я его использую, чтобы быть понятным для других считывателей кода:
String manType = "poor";
if (hasMoney())
manType = "rich";
Ответ 12
name = city.getName()!=null?city.getName():"N/A"