ArrayStoreException API上面的实例,为什么编译时,能够通过,运行才会出现错误,这到底是怎样错误检查机制?

Object x[] = new String[3]; x[0] = new Integer0;

java编译期类型检查很大程度上是基于变量/表达式的类型, 而不是值的类型

// 更一般的例子: 这样也可以编译
Object a = 1;
String b = String a; String c = String Object 2;

构造类型的类型检查多了协变逆变, 不过这个方针是一样的

以这些简单例子来说, 用静态分析其实可以发现问题.. 不过javac没做而已

发表评论

电子邮件地址不会被公开。 必填项已用*标注