当前位置: 首页 > 知识库问答 >
问题:

当toMap存储空值时,java流抛出NPE

劳昊明
2023-03-14

HashMap允许存储NULL值,但是Stream.toMap(r-


共有1个答案

漆雕唯
2023-03-14

收藏家。toMap使用HashMap::merge合并结果:

public V merge(K key, V value,
               BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
    if (value == null)
        throw new NullPointerException();
    if (remappingFunction == null)
        throw new NullPointerException();

因此,它可能存储空值,但merge不允许。

您可以使用forEach进行变通

stream.forEach (
   r-> map.put(r.getName(), r.get(obj))
)
 类似资料:
  • 我对spring boot和JPA相当陌生。我正在做我的学习目的的小项目。 实体类 有线索吗?

  • 我继承了以下java代码,它从获取

  • 我正在使用Guava缓存热数据。当缓存中不存在数据时,我必须从数据库中获取数据: 我的问题是当数据不存在于数据库中时,我希望它返回并且不做任何缓存。但Guava保存与缓存中的关键字,并抛出一个异常,当我得到它: com.google.common.cache.CacheLoader$InvalidCacheLoadExcION: CacheLoader为shisoft键返回null。 我们如何避免

  • 我正在使用SpringBoot和JPA。 在我的实体中,我有一个映射为枚举的状态字段。我想将e特定枚举值映射为null。

  • 我试图创建一个方法,它接受两个字符串参数,并对对象调用一个方法调用。这两个参数将提供className和methodName。理想情况下,我希望使用反射找到对象和方法,然后调用该方法。这是我管理的一个自动化套件。 当我运行它时,我收到一个错误nosuchMethodException:java.lang.String.isPageDisplayed()。 我相信我的问题存在于寻找对象或与对象有关的

  • 请考虑以下代码段: