NullPointerException aber warum?

Status
Nicht offen für weitere Antworten.

newbe

Mitglied
Hallo,

hab leider kein schwimmer wieso beim starten diese NullPointerException geworfen wird, vllt. kann mir jemand kurz einen Denkanstoß geben.

Exception in thread "main" java.lang.NullPointerException
at Tisch.start(Tisch.java:11)
at Tisch.main(Tisch.java:20)

Code:
public class Tisch{
	static int plaetze;
	static Staebchen staebchen[];
	Philosophen philosophen[];
	
	Tisch(int p){
		this.plaetze = p;
	}
	void start (){
		for (int i = 1; i <= plaetze; i++){
			staebchen[i] = new Staebchen();
			philosophen[i] = new Philosophen(i);
		}
		for (int i = 1; i <= plaetze; i++){
			philosophen[i].start();
		}
	}
	public static void main (String[] args){
		Tisch meinTisch = new Tisch(5);
		meinTisch.start();
	}
}	
class Staebchen{
	boolean verfuegbar = true;
	boolean getstatus(){
		return verfuegbar;
	}
	void setstatus(boolean a){
		verfuegbar = a;
	}
}
 

Der Müde Joe

Top Contributor
static Staebchen staebchen[];
Philosophen philosophen[];

Du musst die Arrays auch initialisieren (new) mit einer gewissen grösse. Einfach füllen geht nicht.
 

Schandro

Top Contributor
staebchen und philosophen ist jeweils null. Du musst Arrays zuerst initialisieren und dadurch auch die Größe des Arrays festlegen.
 

newbe

Mitglied
Hallo noch mal,

die nächste für mich nicht zu erklärende NullPointerException tritt auf. Und zwar wenn ich dem Philosophen[0] eine referenz auf das staebchen[4] geben möchte. Dazu hier mal der Konstruktor:

Code:
	Philosophen(int a){
		philonummer = a;
		rechtesStaebchen = Tisch.staebchen[a];
			if (philonummer == 0){
				linkesstaebchen = Tisch.staebchen[Tisch.plaetze-1];
			}
			else{
				linkesstaebchen = Tisch.staebchen[a-1];
			}
		
	}
 
G

Gastredner

Gast
Bitte immer die Fehlermeldung und/oder die problematische Zeile mitposten.
Und in diesem Codeabschnitt gibt es keine Anweisung an Philosophen[0].

Jedenfalls: Bist du sicher, dass alle Arrays korrekt initialisiert worden sind?
 
Zuletzt bearbeitet von einem Moderator:

newbe

Mitglied
Also dann hier mal der ganze code:

Code:
public class Tisch{
	static int plaetze;
	static Staebchen staebchen[];
	Philosophen philosophen[];
	
	Tisch(int p){
		this.plaetze = p;
	}
	void start (){
		staebchen = new Staebchen[plaetze];
		philosophen = new Philosophen[plaetze];
		for (int i = 0; i < plaetze; i++){
			staebchen[i] = new Staebchen(i);
			philosophen[i] = new Philosophen(i);
		}
		for (int i = 0; i < staebchen.length; i++){
			System.out.println(i);
		}
		//for (int i = 0; i < plaetze; i++){
			philosophen[0].start();
		//}
	}
	public static void main (String[] args){
		Tisch meinTisch = new Tisch(5);
		meinTisch.start();
	}
}	
class Staebchen{
	int sNummer;
	Staebchen(int k){
		this.sNummer = k;
	}
	boolean verfuegbar = true;
	boolean getstatus(){
		return verfuegbar;
	}
	void setstatus(boolean a){
		verfuegbar = a;
	}
}

class Philosophen extends Thread {
	int philonummer;
	statusPhilo sP = statusPhilo.Philosophiert;
	Staebchen linkesstaebchen;
	Staebchen rechtesStaebchen;
	
	Philosophen(int a){
		philonummer = a;
		rechtesStaebchen = Tisch.staebchen[a];
			if (philonummer == 0){
				linkesstaebchen = Tisch.staebchen[Tisch.plaetze-1];
			}
			else{
				linkesstaebchen = Tisch.staebchen[a-1];
			}
		
	}
	
	void setstatusPhilo(statusPhilo e){
		sP = e;
	}
	statusPhilo getstatusPhilo(){
		return this.sP;
	}
		
	public void run(){
		try{
			while(true){
				this.sleep((long)(Math.random()*10000));
				this.setstatusPhilo(statusPhilo.Hungrig);
				System.out.println("Der Philosoph " + philonummer + " ist jetzt " + this.sP);
				while (!linkesstaebchen.getstatus()){}
				System.out.println(Tisch.staebchen[4].getstatus());
				linkesstaebchen.setstatus(false);
				System.out.println("Der Philosoph " + philonummer + " hat das linke Staebchen " + linkesstaebchen.sNummer + " rechtes Staebchen " + rechtesStaebchen.sNummer + "aufgenommen.");
				System.out.println(rechtesStaebchen.getstatus());
				this.sleep((long)(Math.random()*10000));
				System.out.println("jetzt hier");
				while (!rechtesStaebchen.getstatus()){}
				rechtesStaebchen.setstatus(false);
				System.out.println("Der Philosoph " + philonummer + " hat das rechte Staebchen aufgenommen.");
				this.sleep((long)Math.random()*1000);
				this.setstatusPhilo(statusPhilo.Essen);
				System.out.println("Der Philosoph " + philonummer + " wird nun " + this.getstatusPhilo());
				this.sleep((long)Math.random()*5000);
				linkesstaebchen.setstatus(true);
				this.sleep((long)Math.random()*500);
				rechtesStaebchen.setstatus(true);
				this.setstatusPhilo(statusPhilo.Philosophiert);
				System.out.println("Der Philosoph " + philonummer + this.getstatusPhilo() + " nun wieder.");
				this.sleep((long)Math.random()*2000);
			}
		}
		catch (InterruptedException e){
			System.out.println("Fehler");
		}
	}
}	
enum statusPhilo{
	Philosophiert, Essen, Hungrig;
}

und die Fehlermeldung beim starten:
Exception in thread "Thread-0" java.lang.NullPointerException
at Philosophen.run(Tisch.java:73)
 
G

Gastredner

Gast
Dies ist die Zeile:
Java:
while (!linkesstaebchen.getstatus()){}
Abgesehen davon, dass ich mich frage, was du mit einer leeren Schleife willst: Scheinbar ist linkesstaebchen null. Überprüfe nochmal, ob alles korrekt initialisiert worden ist.
 

newbe

Mitglied
Ja aber wieso ist linkesstaebchen null. Das verstehe ich ebend nicht. Das linkestaebchen sollte hier inistialisiert werden:

Code:
Philosophen(int a){
		philonummer = a;
		rechtesStaebchen = Tisch.staebchen[a];
			if (philonummer == 0){
				linkesstaebchen = Tisch.staebchen[Tisch.plaetze-1];
			}
			else{
				linkesstaebchen = Tisch.staebchen[a-1];
			}
		
	}

Grundsätzlich funktioniet das auch nur ebend nicht wenn das staebchen[] feld größer ist als das philosophen[] Feld.

Mit einer leeren Schleife möchte ich so lange warten bis die Bedinung false wird.
 

newbe

Mitglied
DANKE!

Code:
		for (int i = 0; i < plaetze; i++){
			staebchen[i] = new Staebchen(i);
			philosophen[i] = new Philosophen(i);
		}

das in zwei schleifen und es läuft :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
W Compiler-Fehler NullPointerException. Aber wieso? Java Basics - Anfänger-Themen 2
T Compiler-Fehler NullpointerException - Wert kann aber ausgelesen werden Java Basics - Anfänger-Themen 2
S nullpointerexception. aber warum ? Java Basics - Anfänger-Themen 3
D NullPointerException aber warum Java Basics - Anfänger-Themen 14
F NullPointerException aber warum? Java Basics - Anfänger-Themen 23
C NullPointerException, aber nichts darf null sein? Java Basics - Anfänger-Themen 7
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
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
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

Ähnliche Java Themen

Neue Themen


Oben