¿No puede emitir conjuntos genéricos?
Me encontré con un problema interesante hoy. Considere el siguiente código
public static class Parent {}
public static class Child extends Parent {}
Set<Child> childs = new HashSet();
Set<Parent> parents = (Set<Parent>)childs; //Error: inconvertible types
Parent parent = (Parent)new Child(); //works?!
¿Por qué no funcionaría un elenco así? Esperaría que un elenco implícito no funcionara debido a las diversas reglas de los genéricos, pero ¿por qué no puede funcionar un elenco explícito?