我错误地声明了一个字符串数组,如下所示:
String[] tokens[];
Eclipse 不会将此作为错误突出显示,而是认为它等同于:
String[][] tokens;
这是正确的行为还是错误?
最佳答案
这是正确的行为 - 数组可以在对象类型或变量名后用方括号定义。
String[] tokens;
和
String tokens[];
是一样的。然而,这是一种编写二维数组的令人困惑的方式,所以我不会故意使用它;)
如果您将数组视为对象(从技术上讲它们是对象),将方括号视为 new 关键字和空构造函数的语法糖,您可以将“错误”设想为:
tokens = new Array<String>(new Array<String>());
两者兼而有之
String[] tokens;
和
String tokens[];
都等同于
new Array<String>();
关于java - 以下 Java 变量声明是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467105/