byłem zaskoczony w dniu dzisiejszym podczas debugowania kodu, aby znaleźć to coś jak następuje nie rzucać wyjątek podczas kompilacji:Dlaczego ta kompilacja?
public Test() {
HashMap map = (HashMap) getList();
}
private List getList(){
return new ArrayList();
}
Jak można sobie wyobrazić, o ClassCastException
jest wyrzucane w czasie wykonywania, ale może ktoś wyjaśnić, dlaczego odlewanie List
do HashMap
jest uważane za legalne w czasie kompilacji?
http://stackoverflow.com/questions/19895304/classcastexception-vs-cannot-cast-compilation-error/37190861#37190861 –