java - 忽略警告 :unchecked conversion in java 的后果是什么

标签 java generics unchecked-conversion

我知道为什么我会收到警告(即将原始类型分配给参数化类型),但如果我忽略警告,我并不完全了解可能的序列。

List list = new ArrayList();           
List<Integer> iList = list;     // warning: unchecked conversion

最佳答案

您在运行时得到 ClassCastException。编译器生成的转换可能会在运行时失败。这将违反泛型类型系统提供的基本保证。从字面上看,您的代码不是类型安全的。检查一下。

List list = new ArrayList();           
List<Integer> iList = list;
list.add("wrong");
for (Integer integer : iList) {
    System.out.println(integer);
}

这是您在运行时遇到的错误。

java.lang.String 无法转换为 java.lang.Integer

关于java - 忽略警告 :unchecked conversion in java 的后果是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53044863/

相关文章:

java - Sonar ,S128 : Switch cases should end with an unconditional "break" statement VS continue

java - 如何从字符串中删除所有非字母数字字符而不删除@符号

java - JUnit 测试不是 Spring Controller 中的触发方法

Java 通用列表给了我警告

java - 尝试访问 AWS 服务时出现不支持的记录版本 Unknown-0.0 异常

c# - 在同一个类上多次使用通用接口(interface)

Java - 这个泛型类的正确签名是什么?

C# 泛型——推断静态工厂成员的类型

c# - C# 中的 unchecked 关键字

java - 使用 Hibernate Criteria 时,类型 List 的表达式需要未经检查的转换以符合 List<Student>