【问题标题】:Issue with 2D array and Java Enums二维数组和 Java 枚举的问题
【发布时间】:2020-05-01 02:24:26
【问题描述】:

我不熟悉具有成员字段和构造函数的枚举,我无法弄清楚为什么会出现此语法错误(当场评论)(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;
    }
}

【问题讨论】:

    标签: java arrays multidimensional-array enums enumeration


    【解决方案1】:

    你的语法有点不对劲。您只能在数组声明时使用该语法来初始化数组。这里你没有声明一个新的数组变量,所以你不能省略数组类型。你需要类似的东西,

    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', ' ', ' ', ' ' } });
    

    【讨论】:

    • 解决了。我不知道为什么当二维数组甚至不是原始类型或真正的数据类型时,我认为我可以将它们作为文字传递。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多