Maison > Java > javaDidacticiel > Pourquoi Collectors.toMap() lève-t-il une NullPointerException avec des valeurs d'entrée nulles ?

Pourquoi Collectors.toMap() lève-t-il une NullPointerException avec des valeurs d'entrée nulles ?

Mary-Kate Olsen
Libérer: 2024-11-11 11:46:03
original
662 Les gens l'ont consulté

Why does Collectors.toMap() throw a NullPointerException with null entry values?

NullPointerException dans Collectors.toMap() avec des valeurs d'entrée nulles

Lorsque vous tentez d'utiliser Collectors.toMap() pour transformer un flux d'objets en carte, une NullPointerException peut survenir si une ou plusieurs des valeurs du flux sont nulles. Ce comportement peut sembler contre-intuitif, étant donné que les cartes sont capables de contenir des valeurs nulles.

Cette exception se produit en raison d'un bug connu dans OpenJDK. Pour atténuer ce problème, une solution de contournement est disponible :

Map<Integer, Boolean> collect = list.stream()
        .collect(HashMap::new, (m,v)->m.put(v.getId(), v.getAnswer()), HashMap::putAll);
Copier après la connexion

Bien qu'elle ne soit pas élégante, cette approche résout efficacement le problème. La carte résultante contiendra les paires clé-valeur du flux, y compris toutes les valeurs nulles.

Notez que cette solution de contournement a une limitation : si le flux contient des clés en double avec des valeurs différentes, la carte remplacera silencieusement la clé existante. valeur avec le nouveau. Pour résoudre ce problème, reportez-vous au lien fourni dans la section commentaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal