2016-10-13 10 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

"pointer"という名前のオブジェクトはありません。問題が簡単にわかるように、完全なエラーメッセージを投稿してください。 –

答えて

0

あなたのコンストラクタの宣言を削除します。

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

すでに宣言されている配列を使用する代わりに、新しい配列を作成しています。

+0

問題ありがとうございました。私は、変数の代わりにすべての宣言を生成関数に入れました –