W tym kodzie.Jak sprawdzić wartość pustą w java
public class Test {
public static void testFun(String str) {
if (str == null | str.length() == 0) {
System.out.println("String is empty");
} else {
System.out.println("String is not empty");
}
}
public static void main(String [] args) {
testFun(null);
}
}
Przekazujemy wartość zerową do funkcji testFun
. Kompiluje się dobrze, ale daje w środowisku wykonawczym nullPointerException
.
Załóżmy, że wartość rzeczywistego argumentu przekazywanego do testFun
jest generowana z jakiegoś procesu. Załóżmy, że omyłkowo zwracana jest wartość pusta i jest ona przekazywana do testFun. Jeśli tak, to w jaki sposób motyka potwierdza, że wartość przekazana do funkcji jest równa zeru, czy nie?
Jednym (dziwnym) rozwiązaniem może być przypisanie formalnego parametru do pewnej zmiennej wewnątrz funkcji, a następnie przetestowanie jej. Ale jeśli do funkcji zostanie przekazanych wiele zmiennych, może to być nudne i niewykonalne. Jak sprawdzić wartości puste w takim scenariuszu?
Edytuj: Przez pomyłkę napisałem || zamiast | w warunku if. Wyjątek czasu wykonywania jest teraz generowany
zapoznaj się zmienił. – Shades88
Czy zapomniałeś przekompilować? [Dla mnie nie powstaje "NullPointerException"] (http://ideone.com/pRrB3). – oldrinb