Wiem, że istnieje sposób na napisanie if
instrukcji Java w krótkiej formie.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Czy ktoś wie, jak napisać krótki formularz dla powyższych 5 wierszy w jednym wierszu?
Wiem, że istnieje sposób na napisanie if
instrukcji Java w krótkiej formie.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Czy ktoś wie, jak napisać krótki formularz dla powyższych 5 wierszy w jednym wierszu?
if
że źle zrozumiałeś swoją logikę.if (city.getName()!=null){name = city.getName();}else{name="N/A"}
if (city.getName()!= null) name = city.getName(); else name="N/A";
Odpowiedzi:
Użyj operatora trójskładnikowego:
Myślę, że masz warunki do tyłu - jeśli jest to null, chcesz, aby wartość była „nie dotyczy”.
Co jeśli miasto jest puste? W takim przypadku Twój kod * uderza w łóżko. Dodałbym kolejny czek:
źródło
name = city.getName() == null ? "N/A" : city.getName();
name = city.getName()==null ? "N/A" : city.getName()
String cityName = city.getName();
rzuciszNullPointerException
ifcity == null
? Dlatego powiedziałbym, że twoje środkowe rozwiązanie jest zdecydowanie najlepsze (PS i ja aprobuję „niepotrzebne” nawiasy! Ludzie muszą pamiętać, że 99% kodowania komunikuje się z innymi ludźmi (i twoim przyszłym sobą), a nie z kompilatorem - inaczej użylibyśmy c!)Aby uniknąć
.getName()
podwójnego połączenia , skorzystałbymźródło
city.setName(null)
. Twoja odpowiedź dobrze to rozwiązuje.Można to zrobić za pomocą operatora trójskładnikowego:
Uważam jednak, że masz literówkę w powyższym kodzie i chcesz powiedzieć:
źródło
W Javie możesz napisać:
Ustawienie jednej zmiennej na jeden z dwóch stanów w oparciu o jeden warunek jest tak powszechnym zastosowaniem if-else, że opracowano dla niego skrót, operator warunkowy?:. Za pomocą operatora warunkowego możesz przepisać powyższy przykład w jednym wierszu, takim jak ten:
(a> b)? a: b; to wyrażenie, które zwraca jedną z dwóch wartości, a lub b. Warunek (a> b) jest testowany. Jeśli to prawda, zwracana jest pierwsza wartość a. Jeśli jest to fałsz, zwracana jest druga wartość, b. Niezależnie od tego, która wartość zostanie zwrócona, zależy od testu warunkowego a> b. Warunkiem może być dowolne wyrażenie zwracające wartość logiczną.
źródło
w java 8:
źródło
Zawsze zapominam, jak korzystać z
?:
operatora trójskładnikowego . Ta uzupełniająca odpowiedź jest szybkim przypomnieniem. To jest skrót odif-then-else
.gdzie
()
posiadaif
?
znaczythen
:
znaczyelse
To jest to samo co
źródło
Możesz pisać
if, else if, else
wyciągi w krótkiej formie. Na przykład:To krótka forma:
źródło
Składnia:
W swoim kodzie możesz to zrobić w następujący sposób:
DODATKOWY: dla ciekawskich
W niektórych językach opartych na
JAVA
podobnychGroovy
można użyć tej składni:Operator
?:
przypisuje wartość zwróconą przez zmienną, o którą prosimy. W tym przypadku wartość,city.getName()
jeśli nie jestnull
.źródło
źródło
najpierw
(city.getName() == null)
sprawdzany jest warunek . Jeśli tak, to"N/A"
jest przypisane do nazwy lub po prostuname="N/A"
albo wartość zcity.getName()
jest przypisana do nazwy, tjname=city.getName()
.Rzeczy, na które warto zwrócić uwagę:
(city.getName() == null)?
. Tutaj znak zapytania znajduje się zaraz po warunku. Łatwo zobaczyć / odczytać / zgadywać nawet!:
) i wartość po prawej stronie dwukropka (a) wartość po lewej stronie dwukropka jest przypisywana, gdy warunek jest spełniony, w przeciwnym razie wartość po prawej stronie dwukropka jest przypisywana do zmiennej.tutaj jest odniesienie: http://www.cafeaulait.org/course/week2/43.html
źródło
tutaj jest jeden kod wiersza
oto przykład, jak to działa, uruchom poniżej kodu w pliku js i zrozum wynik. Jest
("Data" != null)
to warunek taki, jak robimy to normalnieif()
i"Data"
jest stwierdzeniem, kiedy warunek ten się spełnił. to" : "
działa jak inne i"N/A"
jest stwierdzeniem warunku else. Mam nadzieję, że pomoże ci to zrozumieć logikę.źródło
Użyj org.apache.commons.lang3.StringUtils:
źródło
Prosty i przejrzysty:
długa wersja:
lub w jaki sposób używam go, aby być czytelnym dla innych czytników kodów:
źródło
Możesz użyć trójskładnikowego operatora w java.
Składnia:
W swoim kodzie możesz to zrobić,
Aby uzyskać więcej informacji, możesz polecić ten zasób.
źródło
źródło