Because the return type of List.toArray method is
Object[] At runtime, the toArray return method returns the same type of array
as is passed as parameter.
But this information is not known to the compiler.
The compiler only knows that the return type is
Object [] and so it forces you to type-cast.
Does this make sense ?