2016-10-13 2 views
-1

다음 코드를 생성했지만 해당 실행은 널 포인터 예외을 생성합니다. 이런 이유로 나는 약간 도움을 찾고있다.java 오류 Null 포인터 예외

예외가 포인터 개체로 인해 발생한다고 생각하지만 잘못하고있는 것을 이해할 수 없습니다. 여기 내 코드 :

import java.util.Random; 
public class Maze { 
    int width; 
    int length; 
    char elements[][]; 
    boolean visited[][] ; 

    public Maze(int width,int length) { 
    this.width=width; 
    this.length=length; 
    char elements[][] = new char[width][length]; 
    boolean visited[][] = new boolean[width][length]; 

    for(int i=1;i<length-1;i++){ 
     for(int j=1;j<width-1;j++){ 
      visited[i][j]=false; 
     } 
    } 

    for(int i=0;i<length;i++){ 
     visited[0][i] = true; 
     visited[width-1][i]=true; 

    } 

    for(int i=0;i<width;i++){ 
     visited[i][0]=true; 
     visited[i][length-1]=true; 
    } 

    for(int i=0;i<width;i++){ 
     for(int j=0;j<length;j++){ 
      elements[i][j]='X'; 
     } 
    } 

    } 

    public void generate(){ 
    Random rn = new Random(); 
    int start = rn.nextInt(length); 
    int end = rn.nextInt(length); 
    elements[0][start]='s'; 
    elements[width-1][end]='e'; 
    visited[1][start+1]=true; 
    elements[1][start+1]=' '; 

    for(int i=0;i<width;i++){ 
     for(int j=0;j<length;j++){ 
      System.out.println(elements[i][j]); 
     } 
    } 
    } 
} 

public class MazeLauncher{ 
    public static void main(String args[]){ 
     Maze maze = new Maze(4,5); 
     maze.generate(); 
    } 
} 
+1

NPE 스택 추적을 제공하십시오. – Grayson

+3

가능한 [NullPointerException이란 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it)) – csmckelvey

+1

"포인터"라는 이름의 개체가 없습니다. 문제를 쉽게 찾을 수 있도록 전체 오류 메시지를 게시하십시오. –

답변

0

생성자의 선언을 제거하십시오.

public Maze(int width,int length) { 
    this.width=width; 
    this.length=length; 
    elements = new char[width][length]; 
    visited = new boolean[width][length]; 
    ... 
} 

지금은 이미 선언 된 배열을 사용하는 대신 새 배열을 만듭니다.

+0

문제는 고마워. 나는 generate 함수 대신에 모든 선언문을 넣는다. –