2016-10-13 2 views
-1

Я произвел следующий код, но его выполнение вызывает исключение нулевого указателя . По этой причине я ищу какую-то помощь.Исключительное исключение указателя в ошибке java

Я полагаю, что исключение связано с объектом-указателем, но я не могу понять, что я делаю неправильно. Вот мой код:

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

Спасибо, что была проблема. Я помещаю каждое объявление вместо переменных в функцию генерации –