private String[][] var[]
这段代码可以编译。但他们不应该根据类型或变量创建数组吗?
最佳答案
代码与此相同:
private String[][][] var;
所有这些形式都是等效的:
private String[][][] var;
private String[][] var[];
private String[] var[][];
private String var[][][];
它们的含义都相同:三维字符串数组。 String var[][][]
语法可能看起来有点奇怪,但这就像让 C/C++ 程序员在 Java 中感觉很自在(这就是通常在 C/C++ 中声明数组类型的方式)。
在 Java 中,首选 String[][][] var
语法,因为它清楚地表明 var
的 type 是 String[][][]
,在其他语法及其不同变体中,类型信息在变量前后分开 - 尽管从编译器的角度来看这是完全合法的,但它更难阅读。
更奇怪的是,所有这些方法声明都是合法且等效的:
String[][][] m() {return null;}
String[][] m() [] {return null;}
String[] m() [][] {return null;}
String m() [][][] {return null;}
关于java - 为什么java允许私有(private)String[][]var[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55818409/