Parce qu' toArray()
crée un tableau d'Objet, et vous ne pouvez pas faire d' Object[]
en DataObject[]
seulement par moulage. toArray(DataObject[])
crée un tableau d' DataObject
.
Et oui, c'est une lacune de la Collections de la classe et de la manière de médicaments Génériques ont été entassé dans Java. Vous attendez qu' Collection<E>.toArray()
pourrait retourner un tableau de E, mais il ne le fait pas.
Chose intéressante à propos de l' toArray(DataObject[])
appel: vous n'avez pas à faire la "une" tableau assez grand, de sorte que vous pouvez appeler avec des toArray(new DataObject[0])
si vous le souhaitez.
L'appelant comme toArray(new DateObject[0])
est effectivement mieux si vous utilisez .length
plus tard à la longueur du tableau. si la longueur initiale était de grande taille et la même matrice de l'objet que vous avez passé a été retourné, vous pouvez faire face NullPointerException
s plus tard
J'ai posé une question plus haut à propos de Java génériques, et a été rappelé à cette FAQ qui a été très utile: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html