Arrays.fill()只允许在方法中使用?

时间:2013-01-11 01:40:13

标签: java arrays

我正在使用一本书来自学Java。我的一个练习需要一个带有布尔值的数组。当我尝试使用Arrays.fill(myArray, false)时,如下所示,我得到编译器错误。加上IDE抱怨。

...\ArrayFill.java:6: <identifier> expected
...\ArrayFill.java:6: <identifier> expected
...\ArrayFill.java:6: illegal start of type

以下是代码:

import java.util.Arrays;

public class ArrayFill {

boolean[] myArray = new boolean[4];   // Declaration OK.
Arrays.fill( myArray, false);         // Not OK.

//    boolean[] myArray = {false, false, false, false }; // Manually OK.

public void makeReservation(){
    Arrays.fill(myArray, false);      // In a method, OK.
}

}

似乎它与Arrays.fill是静态方法这一事实有关,但我无法找到答案。我接近了吗?

2 个答案:

答案 0 :(得分:8)

您不能在方法体外部运行任意语句。

您需要将代码放在构造函数,初始化程序块或主方法中。

答案 1 :(得分:2)

可以直接在类中的唯一代码是声明和静态初始化器。请注意Arrays.fill(myArray, false);不是这些,所以它必须在另一个代码块中,特别是构造函数,方法或静态初始化器。