Czy istnieje bardziej zwięzły sposób pisaćJak sprawdzić, czy liczba całkowita ma zero lub zero w Javie?
if (myInteger != null && myInteger != 0) { ... }
Dla examle, na smyczki można użyć StringUtils.isBlank()
Czy istnieje bardziej zwięzły sposób pisaćJak sprawdzić, czy liczba całkowita ma zero lub zero w Javie?
if (myInteger != null && myInteger != 0) { ... }
Dla examle, na smyczki można użyć StringUtils.isBlank()
W zależności od wykonania myInteger
(tj jeżeli nieruchomość Integer ciągu myInteger
jest skrzynka typ Integer
lub niezapakowany prymitywny int
), możesz napisać tylko jeden warunkowy.
Integer
s są rzeczywistymi obiektami, co oznacza, że mogą być null
. Mając to na uwadze, mogą one również zawierać 0 jako wartość. Tak więc w tym przypadku musiałbyś wykonać obie kontrole.
int
jest prymitywny i nie może pomieścić wartości null
. W takim przypadku wystarczy sprawdzić, czy własność int
nie jest równa 0.
Chciałbym użyć warunku trójczłonowego. Coś jak:
public static boolean isNullorZero(Integer i){
return 0 == (i == null ? 0 : i);
}
To nie jest czytelny, zgadzam;)
Z Java 8:
if (Optional.ofNullable(myInteger).orElse(0).intValue() != 0) {
...
}
Zauważ, że Optional
może pomóc, aby całkowicie uniknąć jeśli warunek w ogóle, w zależności na twoim przypadku użycia ...
są naprawdę ogromne znaczenia "zwięzłe" ... –
Tak, zgadzają się, że jest to dłużej niż "brzydkie zwykłe" rozwiązanie. Ale właśnie dlatego dodałem, że Opcjonalnie może pomóc w ogóle uniknąć takich kontroli ... –
to nadal nie sprawdza, czy mojaInteger nie jest pusta i zakończy się niepowodzeniem z NullPointerException. Ponieważ obiekt docelowy jest liczbą całkowitą, musimy sprawdzić, czy nie jest on zerowy, a nie zerowy. – acveer
@ RafałLaskowski, który zależy od typu, tj. 'int' kontra' Integer' (ten drugi _ może być pusty). – Thomas
@ RafałLaskowski On/ona oznaczał 'Integer' not' int' – Sweeper
Czy' myInteger' typu 'int' lub' Integer'? Jeśli jest pierwszy, nie może mieć wartości "null". – skw