Java generics mystery
Here is a puzzle for Generics gurus.
Can somebody explain why
Set<Address> addresses = new HashSet<Address>();
Set<?> things = addresses;
compiles but
Set<ConstraintValidator<Address>> validatedAddresses =
new HashSet<ConstraintValidator<Address>>();
Set<ConstraintValidator<?>> validatedThings =
validatedAddresses;
does not compile?
More specifically, the assignment on the second line breaks.
Comments