Java 为什么';在这个设置中默认的数组构造是否有效?

Java 为什么';在这个设置中默认的数组构造是否有效?,java,arrays,Java,Arrays,为什么默认数组构造在此设置中不起作用?以下是我得到的错误: “]”预期, “;”预期, 类型的起始非法,应为标识符(每个标识符8次) 但是,如果我将数组放入这样一个新的、干净的类中,它确实可以工作 public class { public static void main(String[] arg) { String colorWords[] = new String[8]; colorWords[0] = "blue"; colo

为什么默认数组构造在此设置中不起作用?以下是我得到的错误:

“]”预期, “;”预期, 类型的起始非法,应为标识符(每个标识符8次)

但是,如果我将数组放入这样一个新的、干净的类中,它确实可以工作

public class {
    public static void main(String[] arg) {
         String colorWords[] = new String[8];
         colorWords[0] = "blue";
         colorWords[1] = "red";
         colorWords[2] = "purple";
         colorWords[3] = "yellow";
         colorWords[4] = "green";
         colorWords[5] = "pink";
         colorWords[6] = "orange";
         colorWords[7] = "grey";
    }
}

类主体包含方法和变量定义。变量定义可能带有初始值设定项。但是,不能将任意语句放入类主体中。换句话说,您不能将赋值语句放入类主体中—您需要将它们放入方法或构造函数中

在第二段代码中,赋值都在一个方法中,因此该方法可以很好地编译

在这种特殊情况下,比将赋值语句放入构造函数更好的解决方案是根本不分配给数组的各个索引,而是使用大括号用如下值初始化数组:

String colorWords[] = {"blue", ...};
String colorWords[] = {"blue", ...};