を初期化する際の次の 2 つのステートメントの違いは何ArrayList
ですか?
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> a = new ArrayList<>();
を初期化する際の次の 2 つのステートメントの違いは何ArrayList
ですか?
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> a = new ArrayList<>();
Java 1.7 より前では、次のもののみが許可されています。
ArrayList<String> a = new ArrayList<String>();
そして 1.7 では、これが追加されました。これは同じですが、より短いものです: (すべてのプログラマーは怠け者です)
ArrayList<String> a = new ArrayList<>();
後者は、Java 7 で導入された推論された型を使用します。Java 1.7 より前のコレクションでは構文 (ひし形演算子として知られています) は違法であるため、以前のバージョンでは前者が使用されます。
ダイヤモンド演算子は、宣言の冗長性を減らします。
違いはありません。2 番目のオプション (Diamond Operator と呼ばれる) はショートカットです。コンパイラは、ジェネリック ArrayList の型パラメーターが String でなければならないと推論します。
2 番目のオプションは、Java 7 で導入された概念 (推論された型) を使用するものでした。それとは別に、Java 7 を使用していると仮定すると、2 つの呼び出しの効果は同じになるはずです。以前の Java バージョンでは、コードの 2 番目のバージョンを使用できません。