Pobleme mit NullpointerException

  • Themenstarter Themenstarter blabla
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

blabla

Gast
Hallo

diese methode schmeißt mit eine NullPointerException weiß aber nicht warum???

Stelle wo sie rausspringt ist farbig markiert

Code:
	public int getMaxEckenIst()
	{
		/* Es wird jede Koordinate gezaehlt, die einen gueltigen Wert (> oder = 0) besitzt
		 * 
		 * Die maximale tatsaechliche Anzahl an Koordinaten wird zurückgegeben
		 *  
		 */
		int result = 0;
		for(int i=0; i<this.Koordinaten_Lang.length; i++)
		{
			int zaehler=0;
			for(int j=0;j<this.Koordinaten_Lang[i].length;j++)
			{
				if(this.Koordinaten_Lang[i][j]>=0)
					zaehler++;
			}
			
			if(zaehler>result)
				result = zaehler;
		}
		
		[color=red]int ergebnis = result/2;[/color]
		
		return ergebnis;
		
/*		for(int i=0; i<this.Koordinaten_Schnell.length; i++)
		{
			int zaehler=0;
			for(int j=0;j<this.Koordinaten_Schnell[i].length;j++)
			{
				if(this.Koordinaten_Schnell[i][j]>=0)
					zaehler++;
			}
			
			if(zaehler>result)
				result = zaehler;
		}*/
	
	}

edited by thE_29: code tags!![/i
[Edit by foobar: Titel geändert]
 
Poste mal lieber die Nullpointerexception!

Das die dort auftritt glaub ich weniger 😉

Hast du dein Array auch angelegt?

this.Koordinaten_Lang.length;

Das hier?

Gibts da wo ein new oder holst du das via einer Methode?
 
Array ist angelegt und wird von einer Jsp als Methode geholt.

Der Debugger vom Eclipse schaut dann folgendermaßen aus:

Throwable cause = NullPointerException (id=677)
String detailMessage=null
StackTraceElement[] stackTrace = null

Die Methode schmeisst es immer bei

int ergebnis = result/2;

return ergebnis führt er dann gar nicht mehr aus!!!
 
Nunja, eine Nullpointerexception kann nur dann auftreten wenn man auf ein Objekt was null ist drauf zugreifen will!


Du hantierst aber nirgends mit Objekten (primitive Datentypen) von daher kann in der Zeile gar keine NPE auftreten, wenn dann eine NaN (wenn man durch 0 dividiert) aber das kommt ja net...


Lass dir mal die Arrays ausgeben
Also
System.out.println(this.Koordinaten_Lang);

Und dann noch

System.out.println(this.Koordinaten_Lang[0]);
....

Ich glaube noch immer dass da ein Fehler beim Array ist, weil wie gesagt eine NPE nur in Verbindung mit Objekten oder Arrays auftritt!

Eine genau Zeilenanzahl gibt die Exception net an?
 
Nö leider nicht aber schmeissen tuts ihn beim anlegen der int Variable.


aber probiers mal mit System.out.println() und schau dann mal
werd mich ggfs dann noch mal posten.
 
Bitte verwendet sprechende Titel für die Threads, denn ein Titel wie kann mir mal jemand helfen, sagen nicht viel aus.
 
Das sind die Ergebnisse wenn ich nur die das Array aus lese mit

for (int i = 0; i<Koordinaten_Lang.length;i++){

System.out.println(Koordinaten_Lang); System.out.println(Koordinaten_Lang[0]);

}

[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967
[[D@d2efa1
[D@725967

Dann läuft der debugger auch drüber und springt wieder in meine JSP????
 
blabla hat gesagt.:
Nö leider nicht aber schmeissen tuts ihn beim anlegen der int Variable.
NEIN - kann nicht sein - nada njet oder wie auch immer....

Wie schon gesagt - NullPointerException tritt nur bei Objekten auf - int ist kein Objekt - kann nicht sein - einfach glauben....

ok der array und der erste index scheinen nicht null zu sein... da du aber über i und j läufst würde ich da jedes testen... es reicht, wenn eins null ist

Code:
if(derarray[i][j] == null) {
  System.out.printf("%d %d ist null", i,j);
hau das mal in die schleife vor dem zugriff auf den eintrag rein
 
In der JSP wird die Methode so aufgerufen

ConfigRead CR = new ConfigRead();
Auslesen aus einer Datei

CR.loadParameters((String) request.getAttribute("A"));

und dann

out.write("\r\n\t\r\n\tif(isNaN(obj0.MaxEcken.value)||obj0.MaxEcken.value==\"\"|| obj0.MaxEcken.value");

out.print( "<"+CR_Karte.getMaxEckenIst() );

dort schmeisst es die Jsp
 
ist CR_Karte richtig initialisiert ? ist obj0 richtig initialisiert ?

der erste write ist mehr als merkwürdig...
- Strings vergleicht man nicht mit == sondern per equals
- .value scheint ein string zu sein, wie willst du den als booleaschen vergleich nutzen ?
 
So sieht der Anfang der JSP aus
Code:
<html>
<script>
<%
//########################
//###Browserinformation###
//########################
%>
  ns4 = (document.layers)? true:false
  ie4 = (document.all)? true:false
  
function pruefeEingabe(ns4,ie4)
{
	if (ns4){
    	obj0 = document.ConfigVerwaltung;
	}
   	else if (ie4)
   	{
    	obj0 = ConfigVerwaltung;
	}
	
<%  /* Ueberpruefung, ob Werte korrekt eingegeben wurden */  %>
	
if(isNaN(obj0.MaxEcken.value) || obj0.MaxEcken.value==""|| obj0.MaxEcken.value<%= "<"+CR_Karte.getMaxEckenIst() %> ||obj0.MaxEcken.value>99)
	{
alert("Maximale Eckenzahl richtig angeben! (Minimalwert entspricht Maximalwert der bestehenden Stellplaetze)");
		return;
	}
	
if(isNaN(obj0.hoehe.value) || obj0.hoehe.value==""|| obj0.hoehe.value<0)
	{
alert("Bitte Hoehe korrekt eingeben");
return;
	}
	
if(isNaN(obj0.breite.value) || obj0.hoehe.value==""|| obj0.breite.value<0)
	{
alert("Bitte Breite korrekt eingeben");
return;
	}
if(obj0.Link_Image_Links.value=="")
	{
alert("Bitte korrekten Link fuer erstes Image angeben");
return;
	}
	
if(obj0.Link_Image_Mitte.value=="")
	{
alert("Bitte korrekten Link fuer zweites Image angeben");
		return;
	}
<%

edit dbac: code tags
 
öh lieg ich korrekt, dass wir nun auch auf einmal JavaScript drin haben ?! *verwirrt*
 
Jo, is halt ne JSP, da kann ja quasi alles vorkommen. Aber der Javacode ist ja in Code-Tags (<% ... %>) eingebettet.

//Edit: Hm, der neue Code sieht jetzt aber in der Tat sehr strange aus.
 
So siehts genau aus:
Code:
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">

<%	ConfigRead CR_Karte = new ConfigRead();
	CR_Karte.loadParametersKarte((String) request.getAttribute("Data_karteDG") );%>


<html>
<script>
<%
//########################
//###Browserinformation###
//########################
%>
  ns4 = (document.layers)? true:false
  ie4 = (document.all)? true:false
  
function pruefeEingabe(ns4,ie4)
{
	if (ns4){
    	obj0 = document.ConfigVerwaltung;
	}
   	else if (ie4)
   	{
    	obj0 = dConfigVerwaltung;
	}
	
	<%  /* Ueberpruefung, ob Werte korrekt eingegeben wurden */  %>
	
	if(isNaN(obj0.MaxEcken.value) || obj0.MaxEcken.value==""|| obj0.MaxEcken.value<%= "<"+CR_Karte.getMaxEckenIst() %> ||obj0.MaxEcken.value>99)
	{
		alert("Maximale Eckenzahl richtig angeben! (Minimalwert entspricht Maximalwert der bestehenden Stellplaetze)");
		return;
	}
	
	if(isNaN(obj0.hoehe.value) || obj0.hoehe.value==""|| obj0.hoehe.value<0)
	{
		alert("Bitte Hoehe korrekt eingeben");
		return;
	}
	
	if(isNaN(obj0.breite.value) || obj0.hoehe.value==""|| obj0.breite.value<0)
	{
		alert("Bitte Breite korrekt eingeben");
		return;
	}
	
	if(obj0.Link_Image_Links.value=="")
	{
		alert("Bitte korrekten Link fuer erstes Image angeben");
		return;
	}
	
	if(obj0.Link_Image_Mitte.value=="")
	{
		alert("Bitte korrekten Link fuer zweites Image angeben");
		return;
	}
<%
	for(int i=0; i<CR_Karte.getMaxEcken(); i++)
	{%>
	
	if(isNaN(obj0.b<%=i%>.value) ||  obj0.b<%=i%>.value==""|| obj0.b<%=i%>.value<-1000)
	{
		alert("Werksbegrenzung: Koordinate richtig eingeben!!!");
		return;
	}
	
<% }%>

<%
	for(int i=0; i<4; i++)
	{%>
	
	if(isNaN(obj0.kl<%=i%>.value) ||  obj0.kl<%=i%>.value==""|| obj0.kl<%=i%>.value<-1000)
	{
		alert("Erstes Image: Koordinate richtig eingeben!!!");
		return;
	}
	
<% }%>

<%
	for(int i=0; i<4; i++)
	{%>
	
	if(isNaN(obj0.km<%=i%>.value) ||  obj0.km<%=i%>.value==""|| obj0.km<%=i%>.value<-1000)
	{
		alert("Zweites Image: Koordinate richtig eingeben!!!");
		return;
	}
	
<% }%>
		
	obj0.Speichern.value="X";
	obj0.submit();
}

Bin auch nur am überarbeiten der JSP´s die sind schon älter und müssen etwas geändert werden. Bin leider nicht der Ersteller hab mich da nämlich auch schon so gefragt. aber mein Problem liegt in der Methode und nicht in der JSP oder sind da auch Fehler drin wollt ich bloß posten damit du sehen kannst wie obj0 erzeugt wird.

edit dbac: mal wieder code tags... gewöhne dir bitte an diese zu benutzen !!!!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben