private String[][] var[]
このコードはコンパイルされます。しかし、型または変数で配列を作成するべきではありませんか?
コードは次のとおりです。
private String[][][] var;
これらの形式はすべて同等です。
private String[][][] var;
private String[][] var[];
private String[] var[][];
private String var[][][];
これらはすべて同じ意味で、文字列の 3 次元配列です。構文は少し奇妙に見えるかもしれませんが、C/C++ プログラマーが Java に慣れるようにするためのものです(String var[][][]これは、C/C++ で配列型を通常宣言する方法です)。
Java では、の型がisでString[][][] varあることが明確になるため、この構文が好まれます。他の構文とそのさまざまなバリエーションでは、型情報は変数の前後で分割されます。コンパイラの観点からは完全に合法ですが、読んだ。varString[][][]
さらに奇妙なことに、これらのメソッド宣言はすべて正当で同等です。
String[][][] m() {return null;}
String[][] m() [] {return null;}
String[] m() [][] {return null;}
String m() [][][] {return null;}
[]これは、位置によって違いが生じる場合を示す例です。
String[] arr, arr2[];
はのarr配列ですStringが、arr2は の配列の配列ですString。
同じ行で異なる配列を宣言したい場合は、ご覧のとおり有益です。
そして、あなたの例ではvar2、同じ行で別の宣言がされている可能性があります:
private String[][] var[], var2;
オスカーの答えはかなり良いです。英語で読むString[][] var[]としたら、「var は 2 次元の String 配列の配列です」、つまり「var は 3 次元の String 配列です」と言うでしょう。