2

私は本を​​使ってJavaを独学しています。私の演習の1つには、ブール値を持つ配列が必要です。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理由がわかりません。私は閉じていますか?

4

2 に答える 2

9

メソッド本体の外部で任意のステートメントを実行することはできません。

コードをコンストラクター、初期化ブロック、またはmainメソッドに配置する必要があります。

于 2013-01-11T01:41:43.173 に答える
2

クラス内に直接含めることができる唯一のコードは、宣言と静的初期化子です。これらのどちらでもないことに注意してくださいArrays.fill(myArray, false);。したがって、別のコードブロック、具体的にはコンストラクター、メソッド、または静的初期化子の内部にある必要があります。

于 2013-01-11T01:54:07.463 に答える