Tag: java

generics,数组和ClassCastException

我认为这里肯定会有一些我不知道的微妙内容。 考虑以下: public class Foo { private T[] a = (T[]) new Object[5]; public Foo() { // Add some elements to a } public T[] getA() { return a; } } 假设您的main方法包含以下内容: Foo f = new Foo(); Double[] d = f.getA(); 您将获得带有消息java.lang.Object的CastClassException ,无法将其CastClassException为java.lang.Double 。 谁能告诉我为什么? 我对ClassCastException理解是,当您尝试将对象强制转换为无法转换的类型时,它会被抛出。 也就是说,它不是一个实例的子类(引用文档)。 例如: Object o = new Double(3.); Double d […]