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
あることが明確になるため、この構文が好まれます。他の構文とそのさまざまなバリエーションでは、型情報は変数の前後で分割されます。コンパイラの観点からは完全に合法ですが、読んだ。var
String[][][]
さらに奇妙なことに、これらのメソッド宣言はすべて正当で同等です。
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 配列です」と言うでしょう。