2017-12-19 8 views
0

Tut mir leid, wenn ich diese Frage stelle, die bereits gestellt wurde, aber ich bin irgendwie ein Anfänger bei der Programmierung, ich habe versucht herauszufinden, wie man diesen Fehler beheben kann, aber ich habe immer noch Probleme zu lösen es. Ich versuche, diesen Block von Code zu kompilieren hier:Kompilierfehler java.lang.nullpointerexception

//Default constructor 
public Game() { 
    potAmount = 100; 
    betAmount = 0; 
} 

public int getBetFromUser() { 
    //Introduction to the game 
    System.out.println("Welcome to Solitaire Dice Game..bet an amount\r\n" + 
      "\t-if you roll triples you win triple your bet,\r\n" + 
      "\t-if you roll doubles you win double your bet,\r\n" + 
      "\t-if you roll 10 or over, you keep your bet\r\n" + 
      "\t-otherwise you lose your bet\r\n" + 
      "A bet of 0 ends the game\r\n"); 
    System.out.println("Your current pot is 100"); 
    System.out.println("Enter your bet amount:"); 
    betAmount = keyboard.nextInt(); 

    return betAmount; 

Und ich versuche es in meiner Hauptklasse zu nennen, aber ich bekomme diesen Compiler-Fehler:

Ihre Wette Betrag eingeben:

Exception in thread "main" java.lang.NullPointerException bei Game.getBetFromUser (Game.java:26) bei Assign3.main (Assign3.java:9)

+4

Wo wird 'Tastatur' deklariert und initialisiert? – AntonH

+0

Der Tastatur-Scanner wird über meinen Standard-Konstruktor unter öffentlichen Klassenspiel – JimmyJeans

+1

deklariert und wo ist es initialisiert? Weil Sie gerade die Erklärung abgegeben haben, aber nicht die Initialisierung. – AntonH

Antwort

2

Dies ist keine Compiler-Fehler, ist diese Ausnahme geworfen Laufzeit. Sie müssen keyboard Variablen vor dem Aufruf initialisieren keybord.nextLine()

0

Vielleicht kennen Sie dieses Ding. Aber für andere würde ich wiederholen. Es besteht ein Unterschied zwischen dem Kompilierzeitfehler und dem Laufzeitfehler. Wenn wir es kompilieren, prüft der Java-Compiler Syntaxfehler und wenn kein Syntaxfehler vorhanden ist, wird daraus eine .class-Datei erstellt. Wenn irgendein Syntaxfehler vorhanden ist, wird der Code nicht kompiliert. Während in Laufzeit-/Ausführungsfehlern ein Ereignis oder eine Situation auftritt, die während der Ausführung eines Programms auftritt, stört dies den normalen Ablauf der Programmanweisungen.