Denn toArray()
erzeugt ein Array von Object, und Sie können nicht Object[]
in DataObject[]
einfach durch den Wurf. toArray(DataObject[])
erstellt ein Array von DataObject
.
Und ja, es ist ein Manko der Collections-Klasse und der Art und Weise, wie Generics in Java hineingepflanzt wurden. Sie würden erwarten, dass Collection<E>.toArray()
könnte ein Array von E zurückgeben, tut es aber nicht.
Interessant ist die Tatsache, dass die toArray(DataObject[])
Aufruf: Sie müssen das Array "a" nicht groß genug machen, so dass Sie es mit toArray(new DataObject[0])
wenn Sie mögen.
Es zu nennen wie toArray(new DateObject[0])
ist eigentlich besser, wenn Sie die .length
Wenn die ursprüngliche Länge groß war und das gleiche Array-Objekt, das Sie übergeben haben, zurückgegeben wurde, müssen Sie möglicherweise NullPointerException
s später
Ich habe vorhin eine Frage zu Java Generics gestellt und wurde auf diese FAQ verwiesen, die sehr hilfreich war: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html