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

时间:2016-01-04 02:25:49

标签: java arrays jagged-arrays

你好我是一个noob程序员,我正在使用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];
}

}

数组是在我的类中的任何方法之外构造的。 但是,我继续收到一个错误,指出编译器期望0为''',但是当我删除0时,它会抱怨“标识符丢失。”

所以我想知道,我的编译器通过“缺少标识符”意味着什么,以及如何使我的锯齿状数组工作。

1 个答案:

答案 0 :(得分:1)

  

声明不在任何方法之内。

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

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

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