This has nothing to do with the type parameter. This also works:
List<String> list = null;
Connection c = (Connection) list;
Perhaps because List- this is the type of interface. It would be possible for the list link to contain an object that implements the interface List, as well as Connection(whatever, class or interface) the cast works for.
, , . , , .. :
JComponent c = null;
ArrayList l = (ArrayList) c;
, Java Language - 30 .