我无法理解为什么 java 编译器允许将非特定集合分配给已指定变量的集合。像这样:
ArrayList list = new ArrayList();
// Operations on list
ArrayList<String> stringList = list;
这可能会出现各种类型的转换错误,在我看来,如果编译器首先阻止你这样做会更有意义。
我只是问,因为我对语言的这个有点奇怪的方面感到好奇,我实际上并没有遇到让代码工作的问题(尽管有一天我可能需要使用带有各种类的 ArrayList它)。