Here is what I know:
Double
is a subtype of Number
and List
is not a subtype of List
At runtime, List
and List
are identical to List
(1).
However, this will change with the introduction of value types(expected to make it in the JDK 9 or JDK 10 release, not sooner than mid 2016). List
will not be the same as List
anymore due to numerous constraints explained here by Brian Goetz: http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html
(1) - T
and U
types are different in the previous statements