首页 > 解决方案 > 如何在java中的方法中创建和返回枚举

问题描述

我有一个应该返回枚举的方法,但是我不确定如何编码(这是我论文中的一项活动)。下面是方法(在名为 Maze 的类中):

private MazeStatus[][] stringToMaze(String sMaze) {
    String[] splitString = sMaze.split("\n");
    char[][] array = new char[splitString.length][];
    MazeStatus[][] mazeStat;

    for (int x = 0; x < splitString.length; x++) {
        array[x] = new char[splitString[x].length()];
        array[x] = splitString[x].toCharArray();
        for (int y = 0; y < splitString[x].length(); y++) {
            switch (array[x][y]) {
                case '.':
                    mazeStat[x][y] = MazeStatus.VISITED;
                    break;
            }
        }
    }
    return null; // TO DO (Part 1): change appropriately
}

这是MazeStatus课程:

public enum MazeStatus {
    OPEN(' '), OBSTACLE('#'), GOAL('x'), VISITED('.');

    private char text;

    MazeStatus(char s) {
        this.text = s;
    }

    public char text() {
        return this.text;
    }
}

在我尝试创建枚举的方法中

MazeStatus[][] mazeStat;

并为其添加值:

mazeStat[x][y] = MazeStatus.VISITED;

但当然它抱怨它没有被初始化。我不知道如何在不创建实际 Maze 对象的情况下初始化枚举,尤其是二维数组枚举。

标签: javaarraysmultidimensional-arrayenums

解决方案


您需要定义二维数组的大小,如下所示:

MazeStatus[][] mazeStat = new MazeStatus[row.length][column.length];

我不确切知道您的情况是多少,这就是我使用row.lengthand的原因column.length。但请用您的代码中有意义的值替换这些值。


推荐阅读