Collection.toArray(T[] ), plus from overriding classes, states:
* @throws ArrayStoreException if the runtime type of the specified array
* is not a supertype of the runtime type of every element in
* this collection
and Stream.toArray(IntFunction<A[]> ) state:
* @throws ArrayStoreException if the runtime type of the array returned
* from the array generator is not a supertype of the runtime type of every
* element in this stream
Rather than "runtime type" it should more accurately be "component type"