Ошибка
% 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?";
}
}
Вам необходимо инициализировать 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";
String[] errorSoon = new String[n];
При n - сколько строк нужно удерживать.
Вы можете сделать это в объявлении или сделать это без String [] позже, если это будет до того, как вы попытаетесь их использовать.
String[] errorSoon = { "foo", "bar" };
- или -
String[] errorSoon = new String[2];
errorSoon[0] = "foo";
errorSoon[1] = "bar";