java - 如何在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 对象的情况下初始化枚举,尤其是二维数组枚举。
解决方案
您需要定义二维数组的大小,如下所示:
MazeStatus[][] mazeStat = new MazeStatus[row.length][column.length];
我不确切知道您的情况是多少,这就是我使用row.length
and的原因column.length
。但请用您的代码中有意义的值替换这些值。
推荐阅读
- php - Larave BelongsTo 关系返回 null
- listview - 使用 ListView 和 nativescript-vue 进行无限滚动
- python - Pip 21.1 无法导入 InvalidSchemeCombination
- c++ - 从函数返回 char 数组时崩溃
- mysql - MySQL查询对关系表添加限制
- monitoring - 普罗米修斯警报中缺少标签
- r - 为每个条形创建具有不同颜色的绘图条形图
- dynamic - 如何加快 UI Server 更新并允许触发动态 DAG 的时间?
- android - Android 全屏片段不显示导航和状态栏后面的元素
- android - 谷歌私有应用在外部组织关闭测试