1 个回答

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

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

String c = (String) (Object) 2;

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题