Я знаю, что есть способ написать оператор Java if
в краткой форме.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Кто-нибудь знает, как написать короткую форму для 5 вышеупомянутых строк в одну строку?
Я знаю, что есть способ написать оператор Java if
в краткой форме.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Кто-нибудь знает, как написать короткую форму для 5 вышеупомянутых строк в одну строку?
if
неправильно поняли свою логику.if (city.getName()!=null){name = city.getName();}else{name="N/A"}
if (city.getName()!= null) name = city.getName(); else name="N/A";
Ответы:
Используйте троичный оператор:
Я думаю, что у вас есть условия задом наперед - если оно нулевое, вы хотите, чтобы значение было «N / A».
Что делать, если город нулевой? Ваш код * попадает в кровать в этом случае. Я бы добавил еще одну проверку:
источник
name = city.getName() == null ? "N/A" : city.getName();
name = city.getName()==null ? "N/A" : city.getName()
String cityName = city.getName();
бросите,NullPointerException
еслиcity == null
? Поэтому я бы сказал, что ваше среднее решение определенно является лучшим (PS и я одобряю «ненужные» скобки! Люди должны помнить, что 99% кодирования связывается с другими людьми (и вашим будущим я), а не с компилятором - иначе мы будем использовать с!)Чтобы не звонить
.getName()
дважды, я бы использовалисточник
city.setName(null)
. Ваш ответ аккуратно с этим справится.Способ сделать это с помощью троичного оператора:
Тем не менее, я считаю, что у вас есть опечатка в коде выше, и вы хотите сказать:
источник
В Java вы можете написать:
Установка одной переменной в одно из двух состояний на основе одного условия является настолько распространенным использованием if-else, что для нее был разработан ярлык, условный оператор,?:. Используя условный оператор, вы можете переписать приведенный выше пример в одну строку следующим образом:
(а> б)? а: б; является выражением, которое возвращает одно из двух значений, a или b. Условие (a> b) проверяется. Если это правда, первое значение, а, возвращается. Если оно ложно, возвращается второе значение b. Какое бы значение не возвращалось, зависит от условного теста, a> b. Условием может быть любое выражение, которое возвращает логическое значение.
источник
в Ява 8:
источник
Я всегда забываю, как использовать
?:
троичный оператор . Этот дополнительный ответ является быстрым напоминанием. Это сокращение дляif-then-else
.где
()
держитif
?
средстваthen
:
средстваelse
Это так же, как
источник
Вы можете написать
if, else if, else
заявления в краткой форме. Например:Это краткая форма:
источник
Синтаксис:
Так что в вашем коде вы можете сделать так:
EXTRA: для любопытных
В некоторых языках, основанных на
JAVA
лайкеGroovy
, вы можете использовать этот синтаксис:Оператор
?:
присваивает значение, возвращаемое из переменной, которую мы запрашиваем. В этом случае значение,city.getName()
если это не такnull
.источник
источник
во-первых, условие
(city.getName() == null)
проверяется. Если да, то"N/A"
присваивается имя или простоname="N/A"
или значениеcity.getName()
присваивается имя, т.е.name=city.getName()
.На что посмотреть здесь:
(city.getName() == null)?
. Здесь знак вопроса находится сразу после условия. Легко увидеть / прочитать / угадать даже!:
) и значение справа от двоеточия (а) значение слева от двоеточия присваивается, когда условие выполняется, иначе значение справа от двоеточия назначается переменной.вот ссылка: http://www.cafeaulait.org/course/week2/43.html
источник
вот код одной строки
Вот пример, как это работает, запустите приведенный ниже код в js-файле и поймите результат. Это
("Data" != null)
условие, которое мы делаем в обычном режиме,if()
и"Data"
утверждение, когда это условие стало истинным. этот" : "
поступок как иное и"N/A"
является заявлением для другого условия. Надеюсь, что это поможет вам понять логику.источник
Используйте org.apache.commons.lang3.StringUtils:
источник
Просто и понятно:
длинная версия:
или как я использую это, чтобы быть понятным для других читателей кода:
источник
Вы можете использовать троичный оператор в Java.
Синтаксис:
Таким образом, в вашем коде вы можете сделать это,
Для получения дополнительной информации вы можете обратиться к этому ресурсу.
источник
источник