错误
% 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,如错误消息所示,您只声明了它。
errorSoon
String[] errorSoon; // <--declared statement String[] errorSoon = new String[100]; // <--initialized statement
您需要初始化数组,以便它可以在开始设置索引 之前String为元素分配正确的内存存储。 __
String
如果您 只 声明数组(如您所做的那样),则没有为String元素分配内存,而只有 的引用句柄errorSoon,并且当您尝试在任何索引处初始化变量时会引发错误。
作为旁注,您还可以初始化String大括号内的数组,{ }因此,
{ }
String[] errorSoon = {"Hello", "World"};
这相当于
String[] errorSoon = new String[2]; errorSoon[0] = "Hello"; errorSoon[1] = "World";