识别Java中的语法错误

nog*_*amo 0 java arrays syntax-error

给出Java中的这段代码:

int i,j;
String[] names;
names[0] = new String("mary");
names[1] = "John";
i = names.length;
j = names[0].length();
Run Code Online (Sandbox Code Playgroud)

我需要找到错误.据我所知,第1,第2,第4和第5行是正确的,因为它们涉及简单的实例变量,向数组添加元素以及查找数组的长度.但是第3和第6行很奇怪.

你可以像第3行中的方式一样将字符串添加到数组中吗?如果数组中充满了字符串,你可以将其编入索引并对其使用length()方法吗?

Bol*_*ock 7

但是,上述代码中没有语法错误:

它们涉及简单的实例变量

除非在方法之外将它们声明为类的一部分,否则它们不是实例变量.如果它们是在方法中声明的,那么它们被称为局部变量到它们声明的任何代码块的范围内.


尝试向未初始化的数组添加任何内容,如

String[] names;
names[0] = new String("mary");
names[1] = "John";
Run Code Online (Sandbox Code Playgroud)

仍然会导致编译时错误,但这不是由于语法不正确而是试图操作未初始化的变量.你需要初始化它,所以例如其他人说,使用:

String[] names = new String[2];
Run Code Online (Sandbox Code Playgroud)

如果数组中充满了字符串,你可以将其编入索引并对其使用length()方法吗?

当然,这条线完全合法:

j = names[0].length();
Run Code Online (Sandbox Code Playgroud)

并且相当于(假设您修复了yada yada之上的未初始化数组错误):

String firstElement = names[0];
j = firstElement.length();
Run Code Online (Sandbox Code Playgroud)

  • 嗯,这是一个编译时错误,而不是运行时 (3认同)