【发布时间】:2020-02-06 01:03:01
【问题描述】:
Java教程中提到了以下代码:-(https://docs.oracle.com/javase/tutorial/java/generics/why.html)
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
最后一行的转换表明 list.get(0) 不返回字符串。现在,由于 list 没有用任何数据类型声明,它可以接受任何对象。所以我假设 list.get(0) 返回一个 Object 类型。
但是当我检查list.get(0) instanceof String --> 它返回true。
那么为什么需要显式转换。请解释。
【问题讨论】:
-
当你添加
list.add(1000L);时发生了什么,它将编译没有任何问题,但在运行时转换为String时会失败
标签: java generics arraylist casting