Var introduit dans Java 10. C'est pratique, mais dans certains cas, cela peut créer une dépendance.
Exemple de code
var list = Set.of(BigDecimal.ZERO, BigDecimal.ONE);
//Quel est le type de ce collecteur?
var toList = Collectors.toList();
var list2 = list.stream().collect(toList);
//Quel est le type de list2? Bonne réponse: liste<Object>
System.out.println(list2.get(0));
Si toutes les conditions suivantes sont remplies, il s'agira d'un type d'objet car le type ne peut pas être déterminé. (1) Il n'y a pas d'argument, ou le type générique n'est pas déterminé par l'argument (2) Aucun argument de type n'est spécifié
Cependant, l'évitement lui-même n'est pas difficile et la détection n'est pas difficile. -Spécifier l'argument de type ・ N'utilisez pas var comme avant
Exemple de code 1(Spécifiez l'argument de type)
var list = Set.of(BigDecimal.ZERO, BigDecimal.ONE);
//Quel est le type de ce collecteur?
var toList = Collectors.<BigDecimal>toList();
var list2 = list.stream().collect(toList);
//Quel est le type de list2? Bonne réponse: liste<BigDecimal>
System.out.println(list2.get(0));
Exemple de code 2(Évitez d'utiliser var comme avant)
var list = Set.of(BigDecimal.ZERO, BigDecimal.ONE);
Collector<BigDecimal, ?, List<BigDecimal>> toList = Collectors.toList();
var list2 = list.stream().collect(toList);
//Quel est le type d'article?
System.out.println(list2.get(0));
Cependant, cette affaire ne concerne pas seulement "comment l'éviter?" Il semble que le point difficile soit "d'incorporer ou non? Quel type de politique de réponse devrait être unifié?" Pour le nouvel élément appelé var, mais au fait.
Recommended Posts