java - 下一个代码中类转换异常的确切原因是什么?

标签 java classcastexception

public class Main {
    public static void main(String[] args) {
        List<Object[]> list = getIt();

//        unsuccessful iteration, throws ClassCastException
        for (Object id : list) {
            System.out.println(id);
        }

//        successful iteration  
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }

    private static List<Object[]> getIt() {
        List list = new ArrayList();
        list.add(1L);
        return list;
    }
}

我粗略地估计会发生什么(编译器生成的迭代器包含显式转换),但想要一些好的答案,谢谢。

最佳答案

当我使用 Java 7 运行此程序时,我没有得到 ClassCastException,我也不希望得到它,因为该对象在 main() 中被强制转换为 Object

关于java - 下一个代码中类转换异常的确切原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470865/

相关文章:

java - CertPathValidator 和 CertPathBuilder 之间的概念区别是什么?

java - 如果连接无效,BoneCP 将不会返回或抛出

带有监听器的 Android Broadcastreceiver

java - MyClass 无法转换为 java.lang.Comparable : java. lang.ClassCastException

java - 我的类加载器出了什么问题?转换为同一个类时出现 ClassCastException!

java - 在 .jj 文件中检测到左递归

java - 为什么我们只在 Java 中使用 (String args[ ])?

java - 使用 Java 杀死进程

java - ClassCastException问题

jsf - java.lang.ClassCastException:com.sun.faces.facelets.compiler.UIInstructions无法转换为org.primefaces.model.menu.MenuElement