Java: String[] を初期化するには? 質問する

Java: String[] を初期化するには? 質問する

エラー

% 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";

おすすめ記事