java - 为什么编译器不给 List l = new LinkedList<String>() 错误或警告

标签 java generics

让我解释一下场景。

如果我没记错的话,Genericsjava仅用于编译时类型安全。 如果我写

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与类型有关。这里TypeList我还没有写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/

相关文章:

java - 如何在hadoop map reduce中设置使用JNI创建的库文件的路径

java - 我的字典应该使用什么数据结构?

java - 如果连接丢失,Android 会重新连接到蓝牙设备

java - 如何避免java中自引用类型安全接口(interface)的参数类型警告?

java - 如何获取通用列表的类类型?

java - 为什么只允许在某些地方将子类传递给有界通配符?

java - Pydoop 错误 : RuntimeError: java home not found, 尝试使用 CDH5.4 在远程服务器上设置 JAVA_HOME

java - Gingerbread 中的 fragment

c# - 使用动态类型调用泛型方法

c# - 使用 VS2013、Entity Framework 6 和 WebAPI 2 时,使用通用存储库和 UoW 框架是否矫枉过正?