先记录一下,留着遇到问题,能有个思路!
Arrays of generics are not type-safe, because arrays (unlike generic collections) are covariant: you can use a String[] when an Object[] is required, but not so with List<String> and List<Object>.
Covariant collections are not type-safe unless they are read-only.
In a little more detail:
The Java designers decided to disallow arrays of generics because 1) it would not be type-safe, and 2) generics were added to the language precisely to ensure type-safety.
Arrays are also not type-safe:
String[] strings;
Object[] objects = strings; // allowed because of covariance
objects[0] = Long.valueOf(9); // fails at runtime with ArrayStoreException
Because generic types don't carry the type parameter at runtime (that info is "erased"), the JVM cannot even throw an ArrayStoreException in this example
List<String>[] stringsArray = ... // can't create
Object[] objects = stringsArray; // allowed because of covariance of arrays
List<Long> longs = Arrays.asList(Long.valueOf(7));
objects[0] = longs; // ArrayStoreException cannot be thrown because JVM doesn't know the type parameter Long, it's been erased
int length = stringsArray[0].get(0).length(); // would throw ClassCastException---type safety compromised