3 ms·
Java has generics but they are only reified for arrays. C has types that are only generic in the case of arrays. There is a difference. In Java I can write t
by TheCoelacanth 9y ago
Java has generics but they are only reified for arrays.
C has types that are only generic in the case of arrays.
There is a difference.
In Java I can write this function
<T> String getTypeOfArray(T[] arr) {
return arr.getClass().getComponentType().getName();
}
and that will return the name of type T at run-time. If I instead of T[] I use List<T>, getComponentType will return null and there is no way to access what type T is at run-time. At compile time List<T> and T[] behave the same, but at runtime the List loses what type if contains.
In C I can't write a function with that signature at all because it doesn't support generic functions.