Collectors.toMap的对null友好实现
发表于|更新于
|浏览量:
令她反感的,远不是世界的丑陋,而是这个世界所戴的漂亮面具。——《不能承受的生命之轻》
我们在使用toMap时如果遇到null元素,经常会导致我们发生npe
很不方便
于是我给hutool提交了一个PR
完美解决了这个问题
使用方式:
升级到hutool-5.7.20
然后使用CollectorUtil
1 | Map<String, Integer> collect = Arrays.asList("ruben", "a chao", "vampire", "RUBEN", "VAMPIRE", null).stream().collect(CollectorUtil.toMap(Function.identity(), String::length, (l, r) -> l)); |
即可
相关推荐
2020-12-01
debugのChrome篇
我来到这个世界为的是看太阳和蔚蓝色的田野。——巴尔蒙特 chrome中如何debug?我们可以打开chrome的控制台 找到我们的文件 然后在想要调试的地方打断点 然后执行到此处的时候就会触发调试 我们可以点击右侧的Step into next function call来执行下一步函数调用 可以点击Resume script execution放行到下个断点 然后Step over next function call则可以执行步过,执行到当前函数结尾 Step out of current function步出,则可以跳出我们当前执行的函数 Step和我们第一个Step into next function call差不多,都是执行下一步 Activate breakpoints则是禁用断点 最后一个Pause on exceptions则是在所有异常发生时暂停程序,开始调试 我们也可以直接在代码里右键,点击执行到当前代码 Call Stack区域可以查看我们当前函数以及它的调用者 甚至 调用者的调用者… 下方的Scope区域可以观测我们的参数,...
2021-02-15
简单的日志限流
工欲善其事,必先利其器。一一孔子《论语》 首先是日志类 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119...
2022-01-21
thymeleaf动态渲染html
君子忍人所不能忍,容人所不能容,处人所不能处。——邓拓 我们可以使用thymeleaf进行动态渲染html内容 假设我的整个页面都是字符串,例如如下格式: 123456789"<!DOCTYPE html>\n" + "<html>\n" + " <head>\n" + " <meta charset=\"utf-8\">\n" + " <title></title>\n" + " </head>\n" + " <body>\n" + " </body>\n" + "</html>" 那我们渲染的话,其实可以直接新建一个页面,用[(${page})]语法,例如 1[($...
2021-11-17
数据库连接自动断开重连不上
凡事总要有信心,老想着“行”。要是做一件事,先就担心着”怕咱不行吧”,那你就没有勇气了。——盖叫天 今天报了这么一个错 数据库连接不上了,重连也失败,超时 解决办法: 加上hikari配置 123456789101112131415161718spring: # 数据源配置 datasource: hikari: connection-test-query: SELECT 1 FROM DUAL connection-timeout: 600000 maximum-pool-size: 500 max-lifetime: 1800000 minimum-idle: 20 validation-timeout: 3000 idle-timeout: 60000 connection-init-sql: SET NAMES utf8mb4 driver-class-name: com.mysql.cj.jdbc.Driver username: ruben passwor...
2024-12-26
web框架Play
如果法官偷窃了自己,盗贼便有权偷窃别人。——莎士比亚 Github: https://github.com/playframework/playframework 官方网站: https://www.playframework.com/ 最近了解了一个非常有趣的Web框架:Play Framework。它是一个现代化的全栈Web框架,基于Java和Scala开发,特别适合构建高性能、可扩展的Web应用和REST API。Play Framework 的设计理念是快速开发和响应式编程,非常适合现代应用的需求。 安装和配置非常简单。对于使用Java或Scala的开发者,只需要安装SBT(Simple Build Tool)就可以快速启动一个Play项目。 安装SBT:如果你是Java开发者,可以从 sbt 官网 下载并安装。完成后可以通过以下命令验证安装: 1sbt sbtVersion 创建项目:创建一个新的Play项目非常简单,只需运行: 1sbt new playframework/play-java-seed.g8 如果你是Scala用户,可以选择: 1sbt n...
2020-11-12
spring获取bean的第三种方式
Had I not seen the Sun[我本可以忍受黑暗] I could have borne the shade[如果我不曾见过太阳] But Light a newer Wilderness[然而阳光已使我的荒凉] My Wilderness has made[成为更新的荒凉] ——Emily Dickinson 之前我们引用spring里的bean都是通过@Autowired或者@Resource注解获取 这里可以使用第三种方式 首先写个工具类 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package com.ruben.utils;/** * @ClassName: SpringContextHolder * @Date: 2020/11/12 0012 20:40 * @Description: */import org.springframework.beans.BeansException;imp...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog