これら 2 つの用語の扱いが異なるコンパイラを偶然見つけました。入力すると:
LinkedList<String> list = new LinkedList();
生の型に関するコンパイラの警告が表示されます。でも:
LinkedList<String> list = new LinkedList<>();
警告を削除します。2 つのステートメントが本質的に同じことを意味しているように思えます (つまり、指定されたオブジェクト タイプを持たない新しい LinkedList を作成します)。では、なぜコンパイラはすべて空のジェネリックを持っているのでしょうか? ここでの違いは何ですか?