形式1:
Object[] params = null;
params = {1, 2, 3, 4};
形式2:
Object[] params = {1, 2, 3, 4};
形式3:
Object[] params = new Object[]{1, 2, 3, 4};
1.为什么第一种形式就是错的(编译阶段就报错),而第二种就可以呢?(第三种很显然)
2.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)
迷茫2017-04-18 09:51:39
まず、配列の初期化を使用するときに配列の長さを決定する必要があります。これは、配列の長さが不変であることを意味します。
JAVA で配列を作成するには 2 つの方法があります:
(1) などの 静的作成
(2)1
などの
2
リーリー3
リーリーそして質問者が言及した方法:
リーリーエラー 1: 空の配列 params を直接作成しています。つまり、空であり、この時点で配列の長さを変更することはできません。当然、空の配列には何も追加できません。何かがうまくいかないでしょう。上で説明した 2 番目の方法と同じことを行い、長さ 4 の配列を再作成し、新しい配列のアドレスを params に指定する必要があります。つまり、Object[] params = null; 4]; この方法で作成できます。
エラー 2: 配列の初期化は、定義が完了した後にのみ連続して追加できます。
その後、データを追加したい場合は、配列の添え字に従って 1 つずつ追加するだけです。
リーリーただし、直接ではありません params = {1, 2, 3, 4};
迷茫2017-04-18 09:51:39
フォーム 1
リーリーこの宣言メソッドは、実際には Java 初期化配列の 構文シュガー です。いわゆる構文シュガーは、実際の実行では、Java によってフォーム 3 に変換されます。 、
リーリーJava はフォーム 2 のような糖衣構文を提供していないため、この方法で使用することは違法です。
迷茫2017-04-18 09:51:39
リーリー
A. 投稿者はあまり心配する必要がない構文が規定されています。
B. 配列の要素が事前にわかっている場合は、Object[] params = {1, 2, 3, 4};
を使用して配列コードを宣言する方が簡潔です。それ以上の言い方はありません。
巴扎黑2017-04-18 09:51:39
最初の宣言方法は間違っています
Object[] params = new Object[length] である必要があります
2枚目は私が普段使っているものです