在 Java 中构造一个锯齿状数组并遇到两个相互矛盾的错误

Constructing a jagged array in Java and hitting two contradictory errors

你好,我是一个菜鸟程序员,我正在使用 BlueJ 作为我的 IDE。 这是我构造数组的代码

public class letters
{
char[][] colors = new char[3][];
    colors[0] = new char[3];
    colors[1] = new char[9];
    colors[2] = new char[3];

public letters()
{

}

public char getCharacter(int x, int y)
{
    return this.colors[x][y];
}

}

数组是在我 class 中的任何方法之外构建的。 但是,我不断收到一条错误消息,提示编译器在 0 所在的位置需要一个“]”,但是当我擦除 0 时,它会抱怨有一个 "missing identifier."

所以我想知道,"missing identifier," 我的编译器是什么意思,我该如何使锯齿状数组工作。

the declaration is outside of any methods.

那里只有一个声明 - 第一行。三个 赋值 是可执行代码,而不是声明。

class 的声明部分禁止赋值和其他可执行代码。所有可执行语句必须是方法或初始化程序的一部分,即

char[][] colors = new char[3][];

{   // Initializer code
    colors[0] = new char[3];
    colors[1] = new char[9];
    colors[2] = new char[3];
}

更好的是,在声明本身中包含初始化:

char[][] colors = new char[][] {
    new char[3]
,   new char[9]
,   new char[3]
};