Короткая форма для 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);