null pointer exception

Status
Niet open voor verdere reacties.

Shorkan

Gebruiker
Lid geworden
28 okt 2009
Berichten
6
ik krijg een null pointer exception bij dit stukje code, bij Galg spel = new Galg(woord);

Code:
   public static void main(String[] args) {
        WoordLezer doelwoord = new WoordLezer("woorden.txt");
        String woord = doelwoord.geefWoord();
        Interactie letter = new Interactie();
       [B] Galg spel = new Galg(woord);[/B]
        if (spel.magNog()){
            char huidige_letter =letter.invoer();
            spel.probeer(huidige_letter);
            letter.feedback(spel.status());
        }

en in de class Galg (waarvan ik de attributen en de constructor zal weergeven), bij StringBuffer geraden_letters = new StringBuffer(woord.length());

Code:
public class Galg {
String status_in_woorden = "Het woord is nog niet geraden maar de speler mag nog letters proberen.";
String woord;
[B]StringBuffer geraden_letters = new StringBuffer(woord.length());[/B]
int kansen = 8;

public Galg(String s){
     woord = s;
     for(int i=0; i< woord.length(); i++){
        geraden_letters.setCharAt(i, '.');
     }
}

Ik ben net begonnen met Java en ik snap de fout bij geen van beiden, spel wijst volgens mij toch echt naar een galg object, en geraden letters naar een StringBuffer.
 
Laatst bewerkt door een moderator:
In de class Galg heb je de String woord nog niet geinitialiseerd( geen waarde aan toegekend). Als je dan een methode van die string aanroept geeft die een NullPointerException omdat je een methode aanroept van iets dat nog niet bestaat.

Oplossing: geef een waarde aan woord vb: String woord="";

mvg, Hannesvdc
 
ik krijg een null pointer exception bij dit stukje code, bij Galg spel = new Galg(woord);

public static void main(String[] args) {
WoordLezer doelwoord = new WoordLezer("woorden.txt");
String woord = doelwoord.geefWoord();
Interactie letter = new Interactie();
Galg spel = new Galg(woord);
if (spel.magNog()){
char huidige_letter =letter.invoer();
spel.probeer(huidige_letter);
letter.feedback(spel.status());
}


en in de class Galg (waarvan ik de attributen en de constructor zal weergeven), bij StringBuffer geraden_letters = new StringBuffer(woord.length());

public class Galg {
String status_in_woorden = "Het woord is nog niet geraden maar de speler mag nog letters proberen.";
String woord;
StringBuffer geraden_letters = new StringBuffer(woord.length());
int kansen = 8;

public Galg(String s){
woord = s;
for(int i=0; i< woord.length(); i++){
geraden_letters.setCharAt(i, '.');
}
}


Ik ben net begonnen met Java en ik snap de fout bij geen van beiden, spel wijst volgens mij toch echt naar een galg object, en geraden letters naar een StringBuffer.

null pointer exception is een fout als een object of variable de waarde null heeft wat betekent leeg.
Wat je doet bij Galg spel = new Galg(woord) is een nieuwe instantie maken van de klasse Galg die de naam spel heeft.
bij new Galg(woord) geef je bij woord de parameter door die waarschijnlijk leeg is (null) wat ervoor zorgt dat je een null pointer exception krijgt.
probeer te debuggen om te kijken of de variable woord een waarde heeft.

Byee VRC
 
zet eens een vaste waarde op de lijn
String woord = doelwoord.geefWoord();
vb
String woord = "woord";// doelwoord.geefWoord();
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan