According to Java Generics FAQ http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ302 a type parameter cannot be forward-referenced in this way
It is completely legal, say more, you can imagine that A extends C which is generally extends B. So what would you say about when C extends B?