让我解释一下场景。
如果我没记错的话,Generics
在java
仅用于编译时类型安全。
如果我写
List<String> list = new LinkedList<String>(); // fine
list.add("test"); // fine
这很好。但是 如果我写
List list = new LinkedList<String>(); // fine
list.add(9); // fine
我在这里创建了LinkedList
字符串和 List
变量指向 LinkedList
.
它允许插入 integer
进入list
.
现在,Generics
与类型有关。这里Type
是List
我还没有写generics
为此,即 List<String> list
所以写generics
在右侧创建 object
并且不在左侧书写不会生成 List
generic
.
那么为什么编译器在运行/编译时不为以下语句发出警告 ar 异常
List list = new LinkedList<String>();
用Generics
写这样的语句是不是没用在java
.
最佳答案
实际上,如果你写:
List list = new LinkedList<String>();
关于java - 为什么编译器不给 List l = new LinkedList<String>() 错误或警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20490229/