(); Object[] obj = new Object[]{"str", listArr}; S-6ren">
gpt4 book ai didi

java - 将 Object 转换为 ArrayList 时为 "Warning: [unchecked] unchecked cast"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:37 64 4
gpt4 key购买 nike

奇怪的情况 - 下面是代码:

ArrayList<String[]> listArr = new ArrayList<>();
Object[] obj = new Object[]{"str", listArr};

String str = (String) obj[0];//OK
ArrayList<String[]> list = (ArrayList<String[]>) obj[1];//warning: [unchecked] unchecked cast

构建项目时(在项目属性中使用编译器选项 -Xlint:unchecked),我收到一条警告:

warning: [unchecked] unchecked cast
ArrayList list = (ArrayList) obj[1];
required: ArrayList
found: Object

但是以同样的方式转换 String 是可以的。这里有什么问题?

最佳答案

这是因为编译器无法验证list级别的内部类型,所以需要先对list进行验证。以及单独的内部类型。

而不是 ArrayList<String[]> list = (ArrayList<String[]>) obj[1];

应该是 ArrayList<?> list = (ArrayList<?>) obj[1];

关于java - 将 Object 转换为 ArrayList<String[]> 时为 "Warning: [unchecked] unchecked cast",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28873190/

64 4 0