Are you sure that the first code is correct?
You cannot create a generic except with an array of wildcards.
That is you can do this
but you cannot do this
This is from the
Java Language Specification 10.3.
It is a compile time error if the element type is not a reifiable type.