Recently some people said that I was wrong when I explained why one cannot insert a Number object into a list declared as List<? super RationalNumber>.(This assumes that RationalNumber is a subclass of Number)My explanation was that in List<? super RationalNumber> the <? super RationalNumber> stands for an unknown super class of RationalNumber. This means that <? super RationalNumber> indicates that a valid object for List<? super RationalNumber> is an object that extends an unknown super class of RationalNumber.Since an unknown super class of RationalNumber is really unknown (e.g. it can be an interface X instead of Number), there is not guarantee that Number is a sub-class of X i.e. implements X, so Number is not a valid substitution of <? super RationalNumber>.What is wrong with this explanation?Edit: Note that I am asking for what wrong with the way I explain, my explanation. Not another explanation for the original question.Thanks.
Understanding JAVA generic keyword 'super'
java;generics