それは、最近のバージョンのJava(8+)にオミットダイヤモンドオペレータにOKですか?

アパダナ:

Javaの7で、私たちは、ダイヤモンド演算子を使用することができます。

List<String> list = new ArrayList<>();

今私はダイヤモンド演算子を落とすいくつかの最近のコードの人々に見ています:

List<String> list = new ArrayList();

これはダイヤモンド演算子をドロップするように、より最近のバージョンのJava(Javaの8+)に追加された新機能ですか?それとも、単に(だけ後方互換性のために仕事に起こり、そして避けるべき)生の古いArrayListのタイプに依存していますか?

マリウス:

(あなたが望むもののために)正しい構文は次のとおりです。

List<String> l1=new ArrayList<>();

ダイヤモンド演算子を省略すると(フードはもちろん、同じですが、下)あなたのコンパイラの警告を与える修飾されていないリストを意味します。

コンパイル時の型チェックシステムに対してそれに修飾されていない作品を使用して、あなたはダイヤモンド演算子で宣言する変数に基づいてではなく、(あなたが右のそれを行う場合は、作業)それがコンパイルされます。あなたは警告が表示されます理由です。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=404448&siteId=1