Object x[] = new String[3]; x[0] = new Integer(0);
java编译期类型检查很大程度上是基于变量/表达式的类型, 而不是值的类型
// 更一般的例子: 这样也可以编译 Object a = 1; String b = (String) a; String c = (String) (Object) 2;
构造类型的类型检查多了协变逆变, 不过这个方针是一样的
以这些简单例子来说, 用静态分析其实可以发现问题.. 不过javac没做而已