Java 10 では、これにより警告が表示されます -
ArrayList a = new ArrayList<>();
a.add(23);
a.add("str");
「ArrayList は生の型です。ジェネリック型 ArrayList への参照はパラメータ化する必要があります」
そしてその理由は一般的な背後にありますが、このコードの場合
var b = new ArrayList<>();//Object type
b.add(3);
b.add("string");
コンパイラから警告が出されなかったのはなぜですか?
注var
:-メソッドスコープに限定されて知ってvar のジェネリックに取り除かれた設計概念を知りたかっただけです
Edit1 :-内部設計について知りたかっただけなので、重複としてマークしないでください。なぜjavaはvarに一般的なものを追加しなかったのですか?