regarder le code dans Il semble y avoir beaucoup d'annotations @depated. p>
a une réponse définitive de l'équipe Scala (Tytsafe?) Été Publié? P>
merci,
John p> javaconversions code> et
javaconverters code>, je ne suis pas sûr que le "correct" (avec 2,10) à convertir entre Java et Scala Collections (dans les deux sens ) est. p>
3 Réponses :
Je ne connais pas de telles proclamations, mais vous devriez toujours utiliser Comme je le comprends, Javaconverters code>, c'est-à-dire ceux qui vous obligent à indiquer des conversions avec
.Asscala code> et
.ASJAVA code>. p>
Javaconverters code> a été introduit en 2.8.1 car le
Javaconversions Code> en 2.8 était dangereux et a permis de convertir accidentellement des choses où vous n'étiez pas attendre cela. p>
Les deux fonctionnent d'une manière différente: p>
avec javaconverters Vos objets seront entrés dans une classe qui prennent en charge Asscala et Asjava, ce qui vous permettra de convertir programmatiquement votre collection. P> LI>
avec javaconversions, une collection Java / Scala sera automatiquement convertie lorsque requis p> li> ul>
Le risque avec ce dernier est d'obtenir des conversions erronées ou inutiles payant une performance la faute. De plus, au moins dans Scala 2.9, il n'y a pas de mise en cache de conversion implicite, c'est-à-dire si la même conversion est appliquée deux fois à l'intérieur d'une méthode, le code de conversion est appelé deux fois. P>
Lorsque vous convertissez explicitement une collection, si vous en avez besoin dans la version "Java", vous éviterez d'appeler deux fois .asscala dans la même méthode. P>
Ceci est l'exemple d'affiche des dangers de au lieu d'émettre une erreur de type, le compilateur convertit le code SCALA Importer javaconversions ._ code>:
Carte code> à à un
java.util.map code>, qui a une signature de lâche qui accepte
objet code>. P> p>
Voir Stackoverflow.com/questions/8301947/...