Following is meant by array creation of generic type:
T items = new T;
Firstly, generic types are nothing but a marker used in compilation but does not make differences in the generated bytecode. That being said, line 1 and line 2 in the following code generate same bytecode.
1. List<String> names = new ArrayList<String>(); 2. List names = new ArrayList();
Then why in the first place the generics are being used? Because, it provides type safety in compile time that saves us from future runtime error.
In java, the type of any object is attached the any given instance at runtime, which is true for the array as well. Where does it get the type from? While the object is created. In case of generic type, as it does not exists in the bytecode, there is no way to know about the type. Thus, generic type array can not be created.