Il y avait un tel code.
Classe HashMap personnalisée qui hérite de HashMap
@Override
public Object put(Object key, Object value) {
//Rendre la clé plus basse
return super.put(key.toString().toLowerCase(), value);
}
Code utilisant un HashMap personnalisé
CustomHashMap map = new CustomHashMap();
map.putAll(valueMap); //Les clés sont toutes inférieures dans Java 7
Lorsque je suis passé de Java7 à Java8, la clé de carte n'est pas devenue inférieure et ne s'est pas comportée comme avant.
Quand je lis le code de HashMap,
--En Java7, put () est appelé depuis putAll () --En Java8, put () n'est pas appelé ** depuis putAll () **
Il s'est avéré que c'était la cause. Autrement dit, la méthode put substituée n'est pas appelée. Dois-je penser que putAll a fonctionné dans Java 7 parce qu'il n'a pas été remplacé? (Peut-être que je lisais l'implémentation de Java 7.)
Recommended Posts