java - 当我尝试将 Object 转换为 List<Object> 时发出警告

标签 java

我有一个对象,它是一个列表 我的类型转换是:

List<Object> list = (List<Object>)o;

这似乎是正确的,但它给了我:

Type safety: Unchecked cast from Object to ArrayList

仍然......我觉得选角是正确的。

我不想使用@suppressWarning,我想解决它。

最佳答案

代码无法编译是有充分理由的。考虑:

List<Integer> o = new ArrayList<Integer>();
List<Object> list = (List<Object>)o; //Or alternatively (List)o, which does compile, but with a warning
list.add("Hello");
Integer v = o.get(0); //ClassCastException!

警告/错误表明编译器无法再防范意外的 ClassCastException。

关于java - 当我尝试将 Object 转换为 List<Object> 时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22660188/

相关文章:

java - 将文件名中的日期模式与滚动频率解耦

java - 在多个索引上对 Int[] 的 ArrayList 进行排序

java - 这两种方法在调用 equals 方法时有什么区别?

java - Android 预处理器

java - 事件源 : Short way to fire event

java - Spring JPA (Hibernate) 没有 : javax. 类型的限定 bean persistence.EntityManagerFactory

Java 正则表达式在空格上拆分/未在前面

Java、Jacob 和 Microsoft Word : how to properly handle events?

java - 解决 JavaFX 2.2 阿拉伯文本方向问题

java - 检查 ZooKeeper 运行时的状态