This is because creating an array of a specific parameterized type is not type safe, and that is why this is not allowed at all.
If you try the code something like this, you get a compiler error:
List<String>[] arr = new ArrayList<String>[10];
, - . , , , ArrayStoreCheck, , , , . , , .
, :
List<String>[] arr = new ArrayList<String>[10];
Object[] objArr = arr;
objArr[0] = new ArrayList<Integer>();
String str = arr[0].get(0);
, 1- , , , ClassCastException .
- ArrayList - ArrayList<?>, reifiable . , :
List[] arr = new ArrayList[10];
List<?>[] arr2 = new ArrayList<?>[10];
, raw , . , , , . Entry[] Entry<K, V>[].
. :