Короткая форма для Java, если заявление


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

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

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

15 131

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;
}

в java 8:

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

можно писать 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().

вещи, чтобы посмотреть здесь:

  1. условие в скобках вопросительный знак. Вот почему я пишу (city.getName() == null)?. Здесь вопросительный знак находится сразу после условия. Легко увидеть/прочитать/угадать даже!
  2. значение слева от двоеточия (:) и правильное значение толстой кишки (a) значение слева от двоеточия присваивается, когда условие истинно, иначе значение справа от двоеточия присваивается переменной.

вот ссылка:http://www.cafeaulait.org/course/week2/43.html

использовать 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);
name = city.getName()!=null?city.getName():"N/A"