NullPointerException in erweitertem for

Status
Nicht offen für weitere Antworten.

hyperion

Bekanntes Mitglied
Hallo,

in meinem Programm bekomme ich eine NullPoitnerException in einem erweitertem for. Ich binder festen Überzeugung, dass die Profis den Fehler sofort sehen;)

Code:
getStartPos(laenge);

public List<Point> getStartPos(int laengeSnake)
{	
	int j = hoeheLab / 2;

	List<Point> positions = new LinkedList<Point>();
		
	// Länge Schlange = laengeLab / 3, Schlange soll i nder Mitte starten.
	for( int i = laengeLab / 3; i < laengeSnake + laengeLab / 3; i++)
	{	
	        positions.add(new Point(i, j));
	}
		
		return positions;
}

public void paint(Graphics g)
{
	Point oldPoint = null, newPoint;
		
	[b]for(Point p: positions)[b]
	{			
		if(!(oldPoint == null))
		{	
			newPoint = p;
			g.drawLine(oldPoint.x * 20, oldPoint.y * 20, newPoint.x * 20, newPoint.y * 20);	
		}
		oldPoint = p;
	}
		
}

Im Prinzip habe ich eine Liste mit Punkten über die ich eine Schleife mache. Ziel des ganzen ist die Punkte durch Linien zu verbinden. Ich verstehe nur nicht wie da eine NullPointerException ausgelöst werden kann. Eignetlich sollte die Schleife ja nur solange wiederholen bis kein Element mehr in der Liste ist und prüfen ob der alte Punkt gesetzt ist tue ich ja auch. Übrig bleiben würde dann doch nur noch, dass ich beim Befüllen der Liste einen Punkt = null hinzugefügt hätte oder? Wenn ic haber meine Schleife zum Füllen ansehe, dann sehe ich da nicht die Möglichkeit, dass ein Punkt = null reinrutscht.

mfg hyperion
 

Wildcard

Top Contributor
Kann ja nur hier sein:
Java:
g.drawLine(oldPoint.x * 20, oldPoint.y * 20, newPoint.x * 20, newPoint.y * 20);
Kann nur dann auftreten wenn newPoint==null.

Übrigens:
Java:
!(oldPoint == null)
Finde ich schwer lesbar.
Lieber
Java:
oldPoint!=null
oder
Java:
null!=oldPoint
 

hyperion

Bekanntes Mitglied
Kann ja nur hier sein:
Java Code:

1



g.drawLine(oldPoint.x * 20, oldPoint.y * 20, newPoint.x * 20, newPoint.y * 20);

Kann nur dann auftreten wenn newPoint==null.

Genau. Und das beduetet ich habe einen Punkt = null in der Liste hinzugefügt. Wenn ich mir aber meine Methdoe anschaue, welche die Liste füllt:

Code:
public List<Point> getStartPos(int laengeSnake)
{	
	int j = hoeheLab / 2;

	List<Point> positions = new LinkedList<Point>();
		
	// Länge Schlange = laengeLab / 3, Schlange soll i nder Mitte starten.
	for( int i = laengeLab / 3; i < laengeSnake + laengeLab / 3; i++)
	{	
	       positions.add(new Point(i, j));
	}
		
	return positions;
}

sehe ich keine Möglichkeit wie hier ein Punkt = null reinrutscht. Eingangsparameter sind: laengeSnake = 7. hoeheLab = 13 und laengeLab = 23.

mfg hyperion

Übrigens:
Java:
!(oldPoint == null)
Finde ich schwer lesbar.
Lieber
Java:
oldPoint!=null
oder
Java:
null!=oldPoint

Danke für den Tipp. Habs korrigiert;)
 
S

SlaterB

Gast
positions selber kann doch null sein, wann wird das gesetzt?

übrigens: wieso raten wir hier, ist doch alles kinderleicht zu prüfen, entweder mit Debugger oder
System.out.println("positions ist: "+positions);
 

hyperion

Bekanntes Mitglied
Ja Entschuldigung. Ja du hast recht postions ist null.

In der Methode getStartPos(laenge) wird aber positions richtig gefüllt.

Der Debugger stürzt bei einem ab welchen ich hier nicht gepostet hab. Die Meldung ist "Source not found.".

Hier der Code der gebraucht wird:
Code:
public class SnakeGame 
{	
	JLabel labyrinth;
	int laengeLab, hoeheLab;
	int laengeSnake;
	
	SnakeGame()
	{
		laengeLab = 23;
		hoeheLab = 13;
		laengeSnake = 7;
                buildGUI();
	}

        private void buildGUI()
	{
		labyrinth = new Labyrinth(laengeLab, hoeheLab, laengeSnake);
	}
	
	public static void main(String[] input)
	{
		new SnakeGame();
	}
}

class Labyrinth extends JLabel
{
	Snake schlange;
	int laengeLab, hoeheLab;
	List<Point> positions;
	
	
	Labyrinth(int laengeLab, int hoeheLab, int laengeSnake)
	{
		this.laengeLab = laengeLab;
		this.hoeheLab = hoeheLab;
		
		schlange = new Snake(getStartPos(laengeSnake), this);
	}	
	
	public List<Point> getStartPos(int laengeSnake)
	{	
		int j = hoeheLab / 2;

		List<Point> positions = new LinkedList<Point>();
		
		// Länge Schlange = laengeLab / 3, Schlange soll i nder Mitte starten.
		for( int i = laengeLab / 3; i < laengeSnake + laengeLab / 3; i++)
		{	
		   positions.add(new Point(i, j));
		}
		
		return positions;
	}

	public void paint(Graphics g)
	{
		Point oldPoint = null, newPoint;
		
		for(Point p: positions)
		{			
			if(oldPoint != null)
			{	
				newPoint = p;
				g.drawLine(oldPoint.x * 20, oldPoint.y * 20, newPoint.x * 20, newPoint.y * 20);	
			}
			oldPoint = p;
		}
		
	}	
}

public class Snake implements KeyListener
{
	List<Point> positions;
	Labyrinth lab;
	
	
	[b]Snake(List<Point> positions, Labyrinth lab)[/b]
	{
		this.positions = positions;
		this.lab = lab;
	}	
	
	
	
	public void keyReleased(KeyEvent e)
	{
		  
	}
	
	public void keyPressed(KeyEvent e)
	{
		
	}
	
	public void keyTyped(KeyEvent e)
	{
		  
	}
}

Habe den Debugger jetzt zum ersten mal verwendet;) In der Fett markierten Zeile stürzt er ab.

mfg hyperion
 
S

SlaterB

Gast
was hat denn jetzt der Konstruktor von Snake mit der Sache zu tun und wie kann dort etwas abstürzen?

paint von Labyrinth interessiert sich dafür jedenfalls derzeit nicht, Labyrinth selber hat auch eine Liste positions, und die wird nie gesetzt
 

hyperion

Bekanntes Mitglied
Ahh, genau des wars.
Hab ich gar nicht gesehen da ich in der Klasse 2 mal positions hatte einmal in der Methode und einmal als Instanzvariable. Die Methode bezieht sich nun auch auf die Instanzvariable und aus

Code:
schlange = new Snake(getStartPos(laengeSnake), this);

habe ich
Code:
positions = getStartPos(laengeSnake);
schlange = new Snake(positions, this);

gemacht.

mfg hyperion
 

Lexi

Bekanntes Mitglied
Java:
Point oldPoint = null, newPoint;

Was ist das denn für eine Zuweisung ?
Oder ist das garnicht als soeine gedacht ? Habe sowas noch nie gesehen oO ...
 
S

SlaterB

Gast
> Point oldPoint = null, newPoint;

=
Point oldPoint = null;
Point newPoint;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben