赋值 - Java数组初始化,这三种方式有什么区别?
天蓬老师
天蓬老师 2017-04-18 09:49:39
0
4
965

形式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.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(4)
迷茫

まず、配列の初期化を使用するときに配列の長さを決定する必要があります。これは、配列の長さが不変であることを意味します。
JAVA で配列を作成するには 2 つの方法があります:
(1) などの 静的作成

リーリー

(2)1
などの

の動的作成 リーリー

2

リーリー

3

リーリー

そして質問者が言及した方法:

リーリー

エラー 1: 空の配列 params を直接作成しています。つまり、空であり、この時点で配列の長さを変更することはできません。当然、空の配列には何も追加できません。何かがうまくいかないでしょう。上で説明した 2 番目の方法と同じことを行い、長さ 4 の配列を再作成し、新しい配列のアドレスを params に指定する必要があります。つまり、Object[] params = null; 4]; この方法で作成できます。
エラー 2: 配列の初期化は、定義が完了した後にのみ連続して追加できます。

リーリー

その後、データを追加したい場合は、配列の添え字に従って 1 つずつ追加するだけです。

リーリー

ただし、直接ではありません params = {1, 2, 3, 4};

いいねを押す +0
迷茫

フォーム 1

リーリー

この宣言メソッドは、実際には Java 初期化配列の 構文シュガー です。いわゆる構文シュガーは、実際の実行では、Java によってフォーム 3 に変換されます。 、

リーリー

Java はフォーム 2 のような糖衣構文を提供していないため、この方法で使用することは違法です。

いいねを押す +0
迷茫

リーリー

A. 投稿者はあまり心配する必要がない構文が規定されています。
B. 配列の要素が事前にわかっている場合は、Object[] params = {1, 2, 3, 4}; を使用して配列コードを宣言する方が簡潔です。それ以上の言い方はありません。

いいねを押す +0
巴扎黑

最初の宣言方法は間違っています
Object[] params = new Object[length] である必要があります

2枚目は私が普段使っているものです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート