Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator)

Abulinix

Mitglied
Moin Leute.
Ich habe einen Vector in dem 16 Elemente sind.
Wenn ich die jetzt aber mit einem Iterator abrufen will, bricht er nach dem 15. mit 'nem NullPointer ab.
Ich hab' grad keine Ahnung, wieso.

Java:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Vector;

import com.vividsolutions.*;
import com.vividsolutions.jts.geom.Envelope;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;

public class Aufgabe_1_WKT {
	
		public Aufgabe_1_WKT() {
			
		}
	
		String inputDatei;
		Vector<Geometry> speicherVector = new Vector<Geometry>();

		public void liesWKT(String inputDatei) {
		
			try {
				FileInputStream fsDatei = new FileInputStream(inputDatei);  // Schreibt in den Stream
				WKTReader wktInput = new WKTReader();
				InputStreamReader holeWKT = new InputStreamReader(fsDatei);
				
				Geometry geom = wktInput.read(holeWKT);
				while(geom != null) {
					
					geom = wktInput.read(holeWKT);
				
					speicherVector.add(geom);
				}
				holeWKT.close();
				
			} catch (FileNotFoundException e) {
				System.out.println("Datei nicht gefunden.");
				e.printStackTrace();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		};
		
		public int anzahl() {
			return speicherVector.size();
		}
		
		public void mur() {
			Envelope env = new Envelope();
			Iterator<Geometry> it = speicherVector.iterator();
			while(it.hasNext()) {
				//System.out.print(this.anzahl() + "   ");
				Geometry g = it.next();
				env.expandToInclude(g.getEnvelopeInternal());
				System.out.println(env.getMaxX());
			
			};
			System.out.println("grr" + env.getMaxX());
			
		}
	
			
			
	public static void main(String[] args) {
		
		Aufgabe_1_WKT blubb = new Aufgabe_1_WKT();
		blubb.liesWKT("Deutschland.wkt");
		System.out.println(blubb.anzahl());
		blubb.mur();
		

	}

}
 

Jvooy

Mitglied
Java:
if(speicherVector  == null)
{
   continue;
}


Frag einfach ab, ob dein speicherVector null ist. Wenn ja dann soll er den Datensatz überspringen und weiter machen(Schleife vorrausgesetzt). Hatte ich bei einer Datumsbegrenzung in meinem Programm auch ;).


...
Oder hab ich was falsch verstanden ^^?
 
M

maki

Gast
Java:
if(speicherVector  == null)
{
   continue;
}


Frag einfach ab, ob dein speicherVector null ist. Wenn ja dann soll er den Datensatz überspringen und weiter machen(Schleife vorrausgesetzt). Hatte ich bei einer Datumsbegrenzung in meinem Programm auch ;).


...
Oder hab ich was falsch verstanden ^^?
^^^ Die Frage ist doch ob null in der collection sein darf, falls ja wäre dein continue richtig, ansonsten eben eine NullPointerException ;)
 

KrokoDiehl

Top Contributor
Das schöne an den Stacktracen ist, dass er dir sogar die Zeile sagt, wo es schiefgeht. Daher den immer schon mitposten :)

Sonst sagt meine Glaskugel anhand deine Beschreibung:
Java:
Envelope env = new Envelope();
Iterator<Geometry> it = speicherVector.iterator();
while(it.hasNext()) {
    //System.out.print(this.anzahl() + "   ");
    Geometry g = it.next();
    env.expandToInclude(g.getEnvelopeInternal());
    System.out.println(env.getMaxX());
};
Hier könnte das Objekt
Code:
g
null sein, vor allem weil deine Lese-Schleife falsch arbeitet:

Java:
                Geometry geom = wktInput.read(holeWKT);
                while(geom != null) {
                    
                    geom = wktInput.read(holeWKT);
                
                    speicherVector.add(geom);
                }
Hier wird beim ersten Mal 2x gelesen und 1x geschrieben! Vertausche die beiden Zeilen in der Schleife. Ich kann mir gut vorstellen dass so ein null in den Vektor rutscht.

*EDIT* Da hab ich mich so beeilt, dennoch zu spät ;)
 
Zuletzt bearbeitet:
I

irgendjemand

Gast
generell würde ich das ETWAS anderst lösen

*beispiel anhand network-i/o eines BufferedReader

Java:
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line="";
while((line=in.readLine())!=null)
{
//TO-DO
}

so wird garantiert das auch das ERSTE objekt verfügbar ist und die schleife abbricht sobald line==null ist ... somit kann auch innerhalb des while()-loop niemals line==null auftreten ... höchstens line.equals("") worauf dann noch zu prüfen wäre ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
D Fehler, woher kommt er? Allgemeine Java-Themen 9
T Fehlersuche bzw. woher kommt diese ausgabe? Allgemeine Java-Themen 2
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
S Woher Sounds downloaden? Allgemeine Java-Themen 1
C Woher weiß Glasfish das? Allgemeine Java-Themen 3
J SQLException.getNextException; woher nehmen? Allgemeine Java-Themen 9
V JProgressbar, woher Prozentwerte? Allgemeine Java-Themen 2
F Woher bekomme ich "dlib" oder: Interpreter-Program Allgemeine Java-Themen 2
K Woher weiss ein Objekt, zu welchem anderen Objekt es gehört? Allgemeine Java-Themen 8
S [1/2done] Woher bekommt man libarys die es erst ab 1.6 gibt. Allgemeine Java-Themen 10
M toolbar symbole "selbstmalen" oder woher? Allgemeine Java-Themen 5
G woher installiertes JDK? (keine Adminrechte) Allgemeine Java-Themen 3
Z Woher bekomme ich Icon's? Allgemeine Java-Themen 2
P Woher weiß ein Programm wo seine Ressourcen sind? Allgemeine Java-Themen 4
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
N Wie kommt dieses Ergebnis zu stande Allgemeine Java-Themen 15
B OutOfMemoryError kommt nicht/Bug in Java? Allgemeine Java-Themen 2
N [GWT] JavaMail kommt nicht an Allgemeine Java-Themen 9
S Warten, bis ein Impuls von außen kommt. Allgemeine Java-Themen 2
P Ascii Bild aus einem input file nur kommt nix im outputfile an?????? Allgemeine Java-Themen 5
F Geworfene Exception kommt nicht an Allgemeine Java-Themen 6
F Weiß nicht warum Exception kommt Allgemeine Java-Themen 15
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
G Warum kommt hier NullPointerException? Allgemeine Java-Themen 3
M HashMap kommt beim Löschen aus dem Tritt Allgemeine Java-Themen 6
E JExcel- Zugriff auf leere Zellen kommt eine Fehlermeldung Allgemeine Java-Themen 6
C ge2001.exe - Hilfe kommt bei F8 (run) in JCreator Allgemeine Java-Themen 22
R Objekttyp ermitteln das aus generischer Collection kommt Allgemeine Java-Themen 3
P Wann kommt denn nun 1.5 überhaupt? Allgemeine Java-Themen 6
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby.exe Nullpointer Exception bei Queue Allgemeine Java-Themen 5
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
T Nullpointer. :( Allgemeine Java-Themen 31
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
I NullPointer während while(){} Allgemeine Java-Themen 4
G Nullpointer trotz vorherigem Nullcheck Allgemeine Java-Themen 2
V Array aus Instanzen, NullPointer Allgemeine Java-Themen 4
E YQL Api Test - NullPointer Allgemeine Java-Themen 9
D Nullpointer abfangen Allgemeine Java-Themen 7
B Nullpointer Exception in Array Allgemeine Java-Themen 15
H NullPointer finde den grund nicht Allgemeine Java-Themen 9
Z NullPointer in einem VO Allgemeine Java-Themen 14
M Nullpointer Exeption bei String Array Allgemeine Java-Themen 9
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
medic NullPointer verwirrt mich total. Allgemeine Java-Themen 3
G NullPointer. in einer Datenstruktur Allgemeine Java-Themen 2
H Nullpointer exception, Attribute in Label schreiben? Allgemeine Java-Themen 4
G Nullpointer Exception nach KeyPressed Allgemeine Java-Themen 6
G NullPointer ? wieso? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben