New Collection.toArray(IntFunction) Default Method in JDK 11 EA build 22 – Info Java
Yeah. After type erasure, the class will have methods with following signatures:
The deeper issue here is that the language has been designed so that Object is not a superclass of “array of class”.
The supertype relation for array types is not the same as the superclass relation. The direct supertype of Integer is Number according to §4.10.3, but the direct superclass of Integer is Object according to the Class object for Integer (§10.8). This does not matter in practice, because Object is also a supertype of all array types.
Solving that issue would require a backwards-incompatible change for instances to remember their types at runtime (and tag methods accordingly), so the JVM could infer that you actually want a T or T when you call a generic method.
Article Prepared by Ollala Corp