29Fermer31
PolluxLe 23/05/2006 à 17:04
Moumou :
Ben tu encapsules ton type dans une classe, et c'est gagné, non ?

C'est gagné seulement quand tu as besoin d'un sous-type, pas quand tu as besoin d'un sur-type... (i.e. tu peux pas t'en servir comme raccourci pour les paramètres d'une fonction)


D'ailleurs c'est marrant, le Java n'a pas une inférence de type bottom-up :
public static <K,V> Map<K,V> newHashMap() {
return new HashMap<K,V>();
}

You can use it to safely avoid entering the type parameters twice:
Map<Socket, Future<String>> socketOwner = Util.newHashMap();
i.e. le fait que l'appel soit stocké dans un Map<Socket, Future<String>> change la sémantique de l'appel fou2 (bon en fait heureusement tout se passe bien parce qu'aucun ClasseGénérique<U> ne peut être un sur-type strict de ClasseGénérique<String>, sauf si U est un wildcard smile en revanche ça exclut toute possibilité de conversion automatique entre classes dans une révision future de Java...)