Je convertis manuellement le code de Java (1.6) en C# et je trouve une certaine difficulté avec le comportement des primitives (int et double). En C#, il semble que presque toutes les conversions se produisent automatiquementL'autoboxing et le déballage se comportent différemment en Java et en C#
List<double> list1 = new List<double>(); // legal, C#
double d0 = 3.0;
list1.Add(d0); // legal, C#
Double dd = 2.3f; // legal, C#
list1.Add(dd); // legal, C#
List<Double> list2 = new List<Double>(); // legal, C#
double d1 = 3.0;
list2.Add(d1); // legal, C#
list2.Add(2.0); // legal, C#
double d2 = list2.get(0); // legal, C#
mais en Java seulement quelques-uns sont autorisés
List<double> list1 = new ArrayList<double>(); // illegal, Java
List<Double> list2 = new ArrayList<Double>(); // legal, Java
double d1 = 3.0;
list2.add(d1); // legal, Java
list2.add(2.0); // legal, Java
double d2 = list2.get(0); // legal, Java
Je serais reconnaissant d'une analyse systématique des différences et toute raison d'être.
J'avais l'impression que la liste existait bien avant l'effacement de Java, ou est-ce que je ne comprends pas ce que vous dites? –
RHSeeger
@RHSeeger, Liste est un type générique. Génériques en Java où/sont implémentés avec Type Erasure. Cela implique donc que la liste n'existait pas avant l'effacement de type (au moins avec les paramètres Type). Notez que, Liste sera traduit à la liste de type brut. –