java-compiler が、変数が指定されているコレクションに非固有のコレクションを割り当てることを許可する理由を理解できません。このような:
ArrayList list = new ArrayList();
// Operations on list
ArrayList<String> stringList = list;
これにはあらゆる種類のキャストエラーが発生する可能性があります。コンパイラが最初からこれを行うのを止めた方が理にかなっているように思えます。
私は言語のこのやや奇妙な側面に興味があるので質問しているだけです.実際にはコードを動作させるのに問題はありません.それ)。