J'essaie de comprendre variable locale de l'inférence de type en Java 10.
-
Le code ci-dessous fonctionne parfaitement lors de la compilation et de l'exécution:
List list1 = Arrays.asList(1L, 2.0F, "3"); var list2 = list1;
-
Cependant, cette ligne renvoie une erreur de compilation:
var list3 = Arrays.asList(1L, 2.0F, "3");
Error:java: java.lang.AssertionError: Unexpected intersection type: java.lang.Object&java.io.Serializable&java.lang.Comparable<? extends java.lang.Object&java.io.Serializable&java.lang.Comparable<?>>
Je ne comprends vraiment pas pourquoi le 2ème cas est mal, mais pas le 1er cas. Parce que je suppose que le compilateur aurait déduire le type d' list1
et de traiter list2
et list3
le même. Merci à l'avance.