Java exception bei der Ausführung

Feras

Aktives Mitglied
Hi, ich erhalte in der nachfolgenden Klasse beim Ausführen in den Zeilen 26 und 46 eine java.lang.NullPointerExeception . Ich weiß aus der SuFu mittlerweile, dass es bedeutet, dass kein Objekt initialisiert wurde und es auf NULL zeigt. Nur verstehe ich nicht, wie ich das Problem hier lösen kann?

MfG, Feras

Java:
import java.util.List;


public class Nutzerverwaltung {
	
	private static Nutzer angemeldeterNutzer;
	private List<Nutzer> nutzerList;

	
	public Nutzerverwaltung(){ }
	
	public Nutzer holeNutzer(String benutzername) {

		ladeNutzerliste();
		
		for (Nutzer nutzer : nutzerList)
			if(nutzer.holeBenutzername().equals(benutzername))
				return nutzer;
		
		return null;
		
	}
	
	public boolean anmelden(String benutzername, String passwort) {
		
		ladeNutzerliste();
		
		for (Nutzer nutzer : nutzerList)
			if(nutzer.holeBenutzername().equals(benutzername) && nutzer.holePasswort().equals(passwort))
				return true;
		return false;
		
	}
	
	public static Nutzer holeAngemeldeterNutzer() {
		return angemeldeterNutzer;
	}
	
	private List<Nutzer> ladeNutzerliste(){
		
		List<List<String>> speicherList = new NutzerdatenSpeicher().holeNutzerdaten();
		
		for (List<String> list : speicherList){
			
			if(list.get(0).equalsIgnoreCase("Student")){
				nutzerList.add(new Student(list.get(1), list.get(2), list.get(3), list.get(4), list.get(5), Integer.parseInt(list.get(6)), list.get(7)));
			}else if(list.get(0).equalsIgnoreCase("Tutor")){
				nutzerList.add(new Tutor(list.get(1), list.get(2), list.get(3), list.get(4), list.get(5)));
			}
			
		}

		return nutzerList;
		
	}	

}
 

Joose

Top Contributor
Hi, ich erhalte in der nachfolgenden Klasse beim Ausführen in den Zeilen 26 und 46 eine java.lang.NullPointerExeception . Ich weiß aus der SuFu mittlerweile, dass es bedeutet, dass kein Objekt initialisiert wurde und es auf NULL zeigt. Nur verstehe ich nicht, wie ich das Problem hier lösen kann?

Java:
public class Nutzerverwaltung {
	
	private static Nutzer angemeldeterNutzer;
	private List<Nutzer> nutzerList;
......
	private List<Nutzer> ladeNutzerliste(){
.....
			if(list.get(0).equalsIgnoreCase("Student")){
				nutzerList.add(new Student(list.get(1), list.get(2), list.get(3), list.get(4), list.get(5), Integer.parseInt(list.get(6)), list.get(7)));
			}else if(list.get(0).equalsIgnoreCase("Tutor")){
				nutzerList.add(new Tutor(list.get(1), list.get(2), list.get(3), list.get(4), list.get(5)));
			}
......

In deiner Methode "ladeNutzerliste" greifst du auf das Klassenattribut "nutzerList" zu.
Wo wird dieses Attribut initialisiert?

Kleiner Tipp: Auch wenn du nur ein kurzes "if" oder eine kurze "for" Schleife hast, verwende immer Klammern! Minimal mehr Schreibarbeit hilft aber enorm Flüchtigkeitsfehlern zu vermeiden (vor allem als Anfänger)
 
Zuletzt bearbeitet:

Joose

Top Contributor
Nein, damit hast du das Attribut nur deklariert!

Um etwas zu initialisieren muss der Konstruktor von etwas aufgerufen werden. (Sprich es muss ein new vorkommen)

Wenn du eine IDE mit Debugger verwendest kannst du ja mal einfach zu dieser Zeile debuggen und den Wert der Variable kontrolliern ;)
 
Zuletzt bearbeitet:

Joose

Top Contributor
also müsste ich vor "ladeNutzerliste();" "List<Nutzer> nutzerList = new ArrayList<Nutzer>();" einfügen?

Achtung: Es ist ein Unterschied ob du in der Methode "ladeNutzerliste()"
Java:
List<Nutzer> nutzerList = new ArrayList<Nutzer>();
oder
Java:
nutzerList = new ArrayList<Nutzer>();
einfügst!

Die 1.Variante erzeugt eine neue lokale Variable und löst dein Problem nicht.
Die 2.Variante löst dein Problem denn diese initialisiert dein Klassenattribut!
 

Feras

Aktives Mitglied
So, nun ich ich noch eine NullPointerException bei einer anderen Klasse(LehvisGUI) Die Exception tritt in der Zeile 58 (holeVorname()) auf. Diese greift auf die oben schon genannte Klasse Nutzerverwaltung zu. Hier gibt es doch gar keine Liste die ich initialisieren muss?

Java:
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class LehvisGUI extends Frame {

	public LehvisGUI() {
		setTitle("Lehvis-Anmeldung");
		setSize(800, 400);
		setVisible(true);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				System.exit(0);
			}
		});
		zeigeAnmeldeGUI();
	}

	private void zeigeAnmeldeGUI() {
		setLayout(new GridLayout(6, 2));

		add(new Panel());
		add(new Label("Eingerichtet sind Benutzer \"Tutor1\""));
		add(new Panel());
		add(new Label("und \"Student1\" bis \"Student9\""));
		add(new Panel());
		add(new Label("jeweils mit gleichlautendem Passwort."));

		final TextField benutzerNameText = new TextField("Tutor1", 20);
		add(new Label("Benutzername:"));
		add(benutzerNameText);

		final TextField passwortText = new TextField("Tutor1", 20);
		passwortText.setEchoChar('*');
		add(new Label("Passwort:"));
		add(passwortText);

		final Label statusLabel = new Label("Falsche Eingabe!");
		statusLabel.setVisible(false);
		add(statusLabel);

		Button anmeldenButton = new Button("Anmelden");
		anmeldenButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				boolean erfolg = new Nutzerverwaltung().anmelden(
						benutzerNameText.getText(), passwortText.getText());
				if (erfolg) {
					setLayout(new GridLayout(1, 1));
					setTitle("Lehvis - angemeldeter Nutzer "
							+ Nutzerverwaltung.holeAngemeldeterNutzer()
									.holeVorname()
							+ " "
							+ Nutzerverwaltung.holeAngemeldeterNutzer()
									.holeName());
					removeAll();
					add(new UebungsverwaltungGUI(LehvisGUI.this));
					validate();
				} else {
					statusLabel.setVisible(true);
					benutzerNameText.setText("");
					passwortText.setText("");
				}
				validate();
			}
		});
		add(anmeldenButton);

		validate();
	}

	public static void main(String[] args) {
		new LehvisGUI();
	}

}

Java:
import java.util.ArrayList;
import java.util.List;

public class Nutzerverwaltung {

	private static Nutzer angemeldeterNutzer;
	private List<Nutzer> nutzerList;

	public Nutzerverwaltung() {
	}

	public Nutzer holeNutzer(String benutzername) {

		ladeNutzerliste();

		for (Nutzer nutzer : nutzerList)
			if (nutzer.holeBenutzername().equals(benutzername))
				return nutzer;

		return null;

	}

	public boolean anmelden(String benutzername, String passwort) {

		nutzerList = new ArrayList<Nutzer>();

		ladeNutzerliste();

		for (Nutzer nutzer : nutzerList)
			if (nutzer.holeBenutzername().equals(benutzername)
					&& nutzer.holePasswort().equals(passwort))
				return true;
		return false;

	}

	public static Nutzer holeAngemeldeterNutzer() {
		return angemeldeterNutzer;
	}

	private List<Nutzer> ladeNutzerliste() {

		List<List<String>> speicherList = new NutzerdatenSpeicher()
				.holeNutzerdaten();

		for (List<String> list : speicherList) {

			if (list.get(0).equalsIgnoreCase("Student")) {

				nutzerList.add(new Student(list.get(1), list.get(2), list
						.get(3), list.get(4), list.get(5), Integer
						.parseInt(list.get(6)), list.get(7)));

			}

			else if (list.get(0).equalsIgnoreCase("Tutor")) {

				nutzerList.add(new Tutor(list.get(1), list.get(2), list.get(3),
						list.get(4), list.get(5)));

			}

		}

		return nutzerList;

	}

}
 

Joose

Top Contributor
Diese greift auf die oben schon genannte Klasse Nutzerverwaltung zu. Hier gibt es doch gar keine Liste die ich initialisieren muss?

Java:
Nutzerverwaltung.holeAngemeldeterNutzer().holeVorname()

Nein du hast zwar keine Liste, aber dafür andere Objekte die nicht initialisert sind!
Diese zu finden ist nicht schwer, die Fehlermledung zeigt dir immer die Zeile an wo die Exception passiert.

"holeAngemeldeterNutzer()" liefert dir null zurück. Und darauf kannst du keine Methode aufrufen! Daher die Exception.
Warum "holeAngemeldeterNutzer()" null liefert und nicht das von dir erwartet Objekt musst du nun kontrolliern, da können wir nur bedingt helfen. (Ich sehe zumindest keine Code der in Nutzerverwaltung das statische Objekt "angemeldeterNutzer" setzt)

PS: Wenn du eine IDE nutzt, sind genau das die Fehler um den Umgang mit dem Debugger zu üben :)
So findest du leichter selber deine Fehler und auch noch schneller (und musst nicht lange warten auf eine Antwort im Forum)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java exception auffangen Java Basics - Anfänger-Themen 4
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
B Erste Schritte "Java exception" - was zum... Java Basics - Anfänger-Themen 5
R Erste Schritte Exception bei erstellen von Java Sound Java Basics - Anfänger-Themen 23
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
C Java Nullpointer Exception in 2D-Spiel Snake Java Basics - Anfänger-Themen 8
D java.util.ResourceBundle - exception Java Basics - Anfänger-Themen 4
A Compiler-Fehler unreported exception java.lang.Exception; must be caught or declared to be thrown Java Basics - Anfänger-Themen 7
H exception "java.io.IOException: Stream closed" Java Basics - Anfänger-Themen 10
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
Spin Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data must Java Basics - Anfänger-Themen 10
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
E Fehler: "Exception in thread "main" java.lang.NoSuchMethodError" Java Basics - Anfänger-Themen 15
D java.util.Currency.getInstance exception mit brit. Pfund Java Basics - Anfänger-Themen 4
L Filenotfound Exception bei java.io obwohl file existiert Java Basics - Anfänger-Themen 10
G Fehler: Exception in thread main java.lang.noClassDefFound Java Basics - Anfänger-Themen 7
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
1 Fehler: uncaught exception: internal error: Can't get Java c Java Basics - Anfänger-Themen 2
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
M "exception in thread "main" java.lang.NullPoi Java Basics - Anfänger-Themen 2
S JAVA RMI EXCEPTION Java Basics - Anfänger-Themen 6
S Exception in thread "main" java.lang.UnsupportedCl Java Basics - Anfänger-Themen 4
O java.lang.NoClassDefFoundError Exception in thread "mai Java Basics - Anfänger-Themen 5
V Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 21
S Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
NightmareVirus Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 8
A "Exception in thread "main" java.lang.NoCLass Java Basics - Anfänger-Themen 10
A Exception in thread "Thread-33" java.lang.NoClassD Java Basics - Anfänger-Themen 10
C Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 9
vogella Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 6
C exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 7
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
Z Fehlermeldung: Exception. java.lang.String Java Basics - Anfänger-Themen 7
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 3
M Fehlermeldung unreported exception java.io.IOException. Java Basics - Anfänger-Themen 2
L Java App + Exception abfangen Java Basics - Anfänger-Themen 2
L Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerEx Java Basics - Anfänger-Themen 10
L Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
J Java.lang Null Pointer Exception Java Basics - Anfänger-Themen 3
K Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 8
J Exception in thread "main" java.langClassNoFoundEr Java Basics - Anfänger-Themen 2
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 5
B Fehler: Exception in Thread "main" java.lang.NoCla Java Basics - Anfänger-Themen 2
G Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben