首页 > 解决方案 > “找不到符号”/“不能从静态上下文引用非静态变量”

问题描述

public class Main {
    public static void main(String[] args){ 
        create("Maze.txt");
    }

}

public class Maze {
    private final int Max_Maze_Row=20;
    private final int Max_Maze_Column=50;
    public char[][] maze =new char[Max_Maze_Column-1][Max_Maze_Row-1];


    public Maze(){

    }

    public void create(String filename) throws FileNotFoundException{
        Scanner fileinput=new Scanner(new FileInputStream(filename));
        fileinput.useDelimiter("");

        while(fileinput.hasNextLine()){
            int row=0;int col=0;
            String line_content=fileinput.nextLine();
            for(col=0;col<Max_Maze_Column;col++){
                maze[row][col]=line_content.charAt(col);
            }
            row++;
            fileinput.close();

        }

        System.out.println(maze);
    }

}

所以基本上,我正在尝试创建一个 Maze 类,它将从文本文件中读取 20x50 迷宫的内容(这将存储在 2d 数组中)。我定义了 create 方法,它将读取迷宫内容并创建 2D 数组。我有它的代码,我认为这是正确的。但是,当我在主函数中调用 create 方法时,出现“找不到符号”错误。此外,一旦我将 create() 方法设为静态,就会出现非静态变量错误。为什么会这样?任何有关我的创建方法的错误或提示的帮助将不胜感激。谢谢你。

标签: java

解决方案


create不是静态的,因此您需要一个实例Maze,例如:

  new Maze().create("Maze.txt");

请注意,通常每个类将位于不同的 java 文件中。


推荐阅读