More specifically, regarding insolvency, generic types are covariant. Thus, a list of strings can be passed on to what the list of objects expects. This is not typical, because what the list of objects expects may try to add something to a list that is not a string. But telling people that when you have B as a subclass of A, but Collection <B> is not a subtype of Collection <A> is completely unintuitive.
source share