# NullPointerException trotz Abfangen von null?



## hamburger_1983 (24. Okt 2007)

Hallo, wie kann folgende Stelle zu einer NullPointerException führen?


```
<td><font color="#ff0000">
<% if (cto.get(j).getFirstname() != null) {%>
<%= cto.get(j).getFirstname() %>
<%} else {%>
&
<%}%>
</font></td>
```


----------



## Evil-Devil (24. Okt 2007)

Vielleicht ist bereits das Element das bei get(j) zurückgeliefert wird Null, dann bringt die Überprüfung ob getFirstname() != null ist herzlich wenig.


----------



## hamburger_1983 (24. Okt 2007)

Ne, das ist es nicht, das ganze liegt in einer for-Schleife


```
for (int j=0; j<cto.size(); j++)
```

Außerdem läuft die ABfrage direkt davor ohne Probleme


```
<td><font color="#ff0000">
<% if (cto.get(j).getName() != null) {%>
<%= cto.get(j).getName() %>
<%} else {%>
&
<%}%>
</font></td>
```

in beiden Fällen ist cto.get(j) dasselbe


----------



## maki (24. Okt 2007)

> Ne, das ist es nicht, das ganze liegt in einer for-Schleife


Nebenbei gefragt, dir ist schon klar das Scriptlets Pfui! sind, oder?


----------



## hamburger_1983 (24. Okt 2007)

Scriptles?


----------



## maki (24. Okt 2007)

Dann eben "Scriptlets", sind trotzdem schei....


----------



## hamburger_1983 (24. Okt 2007)

Der Fehler scheint sich doch wohl in einer anderen Stelle weiter "unten" aufzufinden. 


```
if (candidates.get(k).getPhoneNumber() != null) {
	if (!candidates.get(k).getPhoneNumber().getHome().isEmpty()) {
		phone = candidates.get(k).getPhoneNumber().getHome();
	}
	if (!candidates.get(k).getPhoneNumber().getOffice().isEmpty()) {
		if (phone != null) {
			phone += "
";
		}
		phone += candidates.get(k).getPhoneNumber().getOffice();
	}
	if (!candidates.get(k).getPhoneNumber().getMobile().isEmpty()) {
		if (phone != null) {
			phone +="
";
		}
		phone += candidates.get(k).getPhoneNumber().getMobile();
	}
}

if (candidates.get(k).getPhoneNumber() == null) {
	phone = "&";
}
```


----------



## thE_29 (24. Okt 2007)

Das ist wahrscheinlich JSP oder sowas..
Aber egal!

Er meint das, was bei cto.get(j) hier zurückommt NULL ist! Dadurch geht die Abfrage getName() ja nicht, weil des Objekt wo du die Methode aufrufen wolltest null ist!


----------



## hamburger_1983 (24. Okt 2007)

Also ctp.get(j) ist nicht NULL, weil ich die vorher alle manuell eingegeben habe (als Testdaten sozusagen) nur klappt die Abfrage irgendwie noch nicht janz so wie ich es will


----------



## maki (24. Okt 2007)

Sieh dir doch mal bei Gelegenheit das hier an: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSTL3.html#wp72409
(ganz unten auf der Seite kann man weiterblättern)

Java Code in Scriplets (<% ... %>) sollten nur noch verwendet werden, um Leuten klar zu machen wozu es Taglibs gibt


----------

