2017-12-19 30 views
0

죄송합니다. 이미 질문을 받았지만 프로그래밍 할 때 멍청한 점이 있습니다.이 버그를 해결하는 방법을 연구했지만 여전히 문제를 해결하려고 노력 중입니다. 그것. 여기 코드 블록 컴파일하려고 :컴파일 오류 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; 

을 그리고 난 내 기본 클래스에서 호출하려고하지만 난이 컴파일 오류가 발생합니다 :

예외 :

는 베팅 금액을 입력 Assign3.main (Assign3.java:9)에서 Game.getBetFromUser (Game.java:26) 에서 "주"스레드 java.lang.NullPointerException이 에

+4

'키보드'는 어디에 선언되고 초기화됩니까? – AntonH

+0

키보드 스캐너는 공용 클래스 게임 – JimmyJeans

+1

에서 기본 생성자 위에 선언되어 있습니다. 그리고 초기화되는 위치는 어디입니까? 왜냐하면 당신은 선언을했지만 초기화는하지 않았기 때문입니다. – AntonH

답변

2

이 컴파일 오류가 아닌,이 던진 예외입니다 실행 시간. 전화하기 전에 keyboard 변수를 초기화해야합니다. keybord.nextLine()

0

이 사실을 알고 계실지 모르겠군요. 그러나 다른 사람들에게는 다시 반복 할 것입니다. 컴파일 시간 오류와 런타임 오류 사이에는 차이가 있습니다. 우리가 컴파일 할 때 자바 컴파일러가 구문 에러를 검사하고 구문 에러가 없다면 .class 파일을 생성 할 것입니다. 구문 오류가 있으면 코드가 컴파일되지 않습니다. 런타임/실행 오류가 프로그램 실행 중에 발생하는 이벤트 또는 상황 인 반면 프로그램의 명령 흐름이 정상적으로 중단됩니다.