我无法理解为什么 java 编译器允许将非特定集合分配给已指定变量的集合。像这样:
ArrayList list = new ArrayList();
// Operations on list
ArrayList<String> stringList = list;
这里可能会出现各种类型的转换错误,在我看来,如果编译器一开始就阻止你这样做会更有意义。
我问这个问题只是因为我对这种语言有点奇怪的方面感到好奇,我实际上并没有遇到让代码工作的问题(尽管我可能有一天需要使用 ArrayList 与各种其中的类)。
最佳答案
它只是为了支持泛型或 java 5 之前的遗留代码。
在 Java SE 5
中引入的泛型和 Collection 很久以前就开始运行了。因此,如果您看到 1.5 之前的 Collection 框架,您会看到 ArrayList , 没有generic
。
关于java - 为什么编译器允许我将泛型集合分配给声明为类特定集合的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12815550/