带有2D数组和Java枚举的问题

问题描述 投票:0回答:1

我是成员字段和构造函数枚举的新手,而且我不知道为什么会出现此语法错误(注释为现场)(Eclipse)。当我将有问题的数据类型更改为2D数组以外的任何其他内容时,错误消失了。

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;
}

}

java arrays multidimensional-array enums enumeration
1个回答
0
投票

您的语法有些偏离。您只能使用该语法在数组声明时初始化数组。在这里,您没有声明新的数组变量,因此您不能忽略数组类型。您需要类似的东西,

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', ' ', ' ', ' ' } });
© www.soinside.com 2019 - 2024. All rights reserved.