2

これは友人から尋ねられました。不思議なことに、このJavaコードは正しくコンパイルおよび実行されます。

int getArray() [] { ... }

私はここで何かが欠けていますか?あるべきではない

int[] getArray() { ... }

編集:getArray()は、整数配列を返す関数です。

4

3 に答える 3

9

JLS のセクション 8.4から:

古いバージョンの Java SE プラットフォームとの互換性のために、配列を返すメソッドの宣言では、配列型の宣言を形成する空のブラケット ペア (の一部またはすべて) を仮パラメーター リストの後に配置することが許可されています。これは、次の廃止された製品でサポートされていますが、新しいコードでは使用しないでください。

名前の後に配列指定子が付いた変数宣言を時々見かけますが (ick) 、このようなメソッド宣言に使用されているのは見たことがありません。変。

于 2012-04-08T17:58:46.253 に答える
2

Java 言語仕様のセクション10.2 に従って、配列を宣言するための両方の構文は Java で同等です。

int[] array;
int array[];

Jon Skeet の回答で引用されているように、JSL のセクション8.4 に従って、同じことがメソッドの戻り値の型にも当てはまります。

int[] getArray() { ... }
int getArray()[] { ... }
于 2012-04-08T17:58:12.383 に答える