二维数组和 Java 枚举问题
Issue with 2D array and Java Enums
我不熟悉具有成员字段和构造函数的枚举,我不明白为什么会出现此语法错误(当场评论)(Eclipse)。当我将相关数据类型更改为二维数组以外的任何数据类型时,错误消失。
public enum KeyboardType {
ALPHABETICAL_CHARACTERS(
{
{'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'},
{'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' '},
{'z', 'x', 'c', 'v', 'b', 'n', 'm', ' ', ' ', ' '}
}
); //Syntax error, insert "Identifier" to complete EnumConstant
private final char[][] layout;
KeyboardType(char[][] layout) {
this.layout = layout;
}
public char[][] getLayout() {
return layout;
}
}
你的语法有点不对劲。您只能使用该语法在数组声明时初始化数组。这里你没有声明一个新的数组变量,所以你不能省略数组类型。你需要这样的东西,
ALPHABETICAL_CHARACTERS(new char[][] {
{ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p' },
{ 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' ' },
{ 'z', 'x', 'c', 'v', 'b', 'n', 'm', ' ', ' ', ' ' } });
我不熟悉具有成员字段和构造函数的枚举,我不明白为什么会出现此语法错误(当场评论)(Eclipse)。当我将相关数据类型更改为二维数组以外的任何数据类型时,错误消失。
public enum KeyboardType {
ALPHABETICAL_CHARACTERS(
{
{'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'},
{'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' '},
{'z', 'x', 'c', 'v', 'b', 'n', 'm', ' ', ' ', ' '}
}
); //Syntax error, insert "Identifier" to complete EnumConstant
private final char[][] layout;
KeyboardType(char[][] layout) {
this.layout = layout;
}
public char[][] getLayout() {
return layout;
}
}
你的语法有点不对劲。您只能使用该语法在数组声明时初始化数组。这里你没有声明一个新的数组变量,所以你不能省略数组类型。你需要这样的东西,
ALPHABETICAL_CHARACTERS(new char[][] {
{ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p' },
{ 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' ' },
{ 'z', 'x', 'c', 'v', 'b', 'n', 'm', ' ', ' ', ' ' } });