执行以下代码时,代码执行完美,没有任何错误,但是对于 type 的变量,方法List<Integer>
的返回类型get()
应该是 Integer,但是在执行此代码时,当我调用时x.get(0)
返回一个字符串,而这应该抛出一个例外。
public static void main(String[] args)
{
ArrayList xa = new ArrayList();
xa.addAll(Arrays.asList("ASDASD", "B"));
List<Integer> x = xa;
System.out.println(x.get(0));
}
但是在执行下面的代码时,只需将返回对象中的类检索添加到前一个代码块中就会引发类转换异常。如果上述代码完美执行,则以下代码也应该毫无例外地执行:
public static void main(String[] args)
{
ArrayList xa = new ArrayList();
xa.addAll(Arrays.asList("ASDASD", "B"));
List<Integer> x = xa;
System.out.println(x.get(0).getClass());
}
为什么java在获取对象的类类型时会执行类型转换?