It is not possible to instantiate arrays of objects with Generics. The problem lies in that fact that arrays are co-variant while generics are not.
Take for example two arrays: Integer intArray=new Integer; Number numArray=intArray;
This is possible as Number is a super class of Integer, and arrays are co-variant. Obviously if we tried to do numArray=new Double(3.4);, a runtime error would be thrown.
Now we should remember generics are a compile time tool. And we should also remember that ArrayList<Number> is not a superclass of ArrayList<Integer>. And since this is the case, it is not possible for an array of ArrayList<Number> to be a super type of an array of ArrayList<Integer>. This doesn't sound like the answer to your orignal question but I am getting there.
The upshot of all this is that to avoid anyone ever trying to do this with arrays of generics, the compiler doesn't allow any generic arrays to be created. There is of course an exception to this rule, and that is where the generic is a wild card. So Class<?> classArray=new Class<?> is allowed while Class<Integer> classArray=new Class<Integer> is not.
There is quite a lot of documentation on this quirk. Search for 'generic arrays' and see what you find.