The following terms would help you to understand things better:
- List<T>.toArray won't work because there's no conversion from Integer to int
- You can't use int as a type argument for generics, so it would have to be an int-specific method (or one which used reflection to do nasty trickery).
There are some libraries that have autogenerated versions of this kind of method for all the primitive types (i.e. there's a template which is copied for each type).
However the Arrays class came out before generics arrived in Java, it would still have to include all the horrible overloads if it were introduced today (assuming you want to use primitive arrays).
Hope this answer helps you!