私は、コンパイル時の例外をスローしません、次のようにその何かを見つけるためにいくつかのコードをデバッグするときに、以前の今日びっくりしました:あなたが想像できるようにこれはなぜコンパイルされますか?
public Test() {
HashMap map = (HashMap) getList();
}
private List getList(){
return new ArrayList();
}
、ClassCastException
は、実行時にスローされますが、誰かをすることができますList
からHashMap
へのキャストがコンパイル時に合法であると思われる理由を説明してください。
http://stackoverflow.com/questions/19895304/classcastexception-vs-cannot-cast-compilation-error/37190861#37190861 –