In the above code the commented line gives compilation failure but it is expected to be successful.
Why do you think that it must be successful? Wildcards are used with generic reference declarations, so that they can reference many differnt generic types. Wildcards were never allowed during the instantiation of objects.
Henry