エラー
% javac StringTest.java
StringTest.java:4: variable errorSoon might not have been initialized
errorSoon[0] = "Error, why?";
コード
public class StringTest {
public static void main(String[] args) {
String[] errorSoon;
errorSoon[0] = "Error, why?";
}
}
ベストアンサー1
エラー メッセージに示されているように、宣言しただけなので、初期化する 必要があります。errorSoon
String[] errorSoon; // <--declared statement
String[] errorSoon = new String[100]; // <--initialized statement
インデックスの設定を開始する前に、配列を初期化して、String
要素に適切なメモリ ストレージを割り当てることができるようにする必要があります。
配列のみを宣言した場合(実行したように) String
、要素にはメモリが割り当てられず、 への参照ハンドルのみが割り当てられerrorSoon
、任意のインデックスで変数を初期化しようとするとエラーがスローされます。
ちなみに、次のようにString
中括弧内で配列を初期化することもできます{ }
。
String[] errorSoon = {"Hello", "World"};
これは次の式と同等である。
String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";