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-11-10
一个无用工具类
富贵不能淫;贫贱不能移;威武不能屈;此之谓大丈夫。——《孟子·滕文公下》 前两天看了点mybatis-plus源码,又看了点手工耿的视频,就有感而发,写下这个工具类 介绍: 平时我们返回给前端返回值就像这样 我们每次都要写这个魔法值key 这样一两个都还好,但久而久之可能会写错 如果我们如果遇到比较长的字段名,可能就要写很长很长,并且没有编译器的提示 所以我照着mybatis-plus源码,顺便用了它一点方法,写了下面这个工具类 这个工具类里就一个方法和一个接口,以及一个测试的主函数,可以通过Lambda表达式获取到它的属性名 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package com.ruben.utils;/** * @ClassName: FunctionUtils * @Date: 2020/11/9 0009 23:43 * @Description: */im...
2022-11-19
CompletableFuture在超时后,能够停止执行吗?
沉默可能产生误解,我需要说话,说话将我推向歧途,我必须沉默。赫塔·米勒——《国王鞠躬,国王杀人》 好问题,尝试一下 123456789101112import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;import java.util.concurrent.TimeoutException;import java.util.stream.Stream;class Scratch { public static void main(String[] args) throws ExecutionException, InterruptedException, TimeoutException { CompletableFuture.runAsync(() -> Stream.generate(Object::new).forEach(...
2022-05-26
mybatis-plus测试
生命,那是自然付给人类去雕琢的宝石。——诺贝尔 mybatis-plus快速测试,文档:https://baomidou.com/pages/b7dae0/ 首先添加依赖 12345678910111213141516171819<!-- 测试依赖 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter-test</artifactId> <version>3.5.1</version> <scope>test</scope></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <versio...
2021-01-04
html转word或pdf
差以毫厘,谬以千里。——班固《汉书》 使用的组件还是Spire.Doc,可以看我这篇博客 如果我们遇到html,需要直接渲染到word或者pdf上,可以使用官方文档给的例子 123456789101112131415161718192021222324252627282930import com.spire.doc.*;import java.io.*;public class htmlStringToWord { public static void main(String[] args) throws Exception { String inputHtml = "InputHtml.txt"; //新建Document对象 Document document = new Document(); //添加section Section sec = document.addSection(); String htmlText = readText...
2025-12-23
SmartTube
人生苦短,若虚度年华,则短暂的人生就太长了。——英国剧作家莎士比亚 SmartTube:在 Android TV 上,按你的规则畅看视频SmartTube 是一个专为 Android TV 和电视盒子打造的开源高级播放器,它的定位非常明确:不依赖 Google 服务、没有广告、集成 SponsorBlock、支持 8K/60fps/HDR,并提供友好的遥控器操作体验。项目的描述很直白——“Browse media content with your own rules on Android TV”(在 Android TV 上按你的规则浏览媒体内容),这恰好概括了它的独特价值。 项目主页:SmartTube 仓库官方网站:smarttubeapp.github.ioREADME(永久链接,便于核对信息来源):README.md@7847cf4 重要安全提示(来自 README)开发者曾公开说明其开发环境遭遇未知恶意软件感染,出于安全考虑共享了新的公钥与恢复备份的说明。应用本身使用一次性连接码,权限有限,但官方建议如有担忧可在 Google 账号安全...
2023-10-14
srs的http api鉴权
怒后不可便食,食后不可发怒。——梁章钜 文档 https://ossrs.net/lts/zh-cn/docs/v5/doc/http-api#authentication 12345678910# conf/http.api.auth.confhttp_api { enabled on; listen 1985; auth { enabled on; username admin; password admin; }} 配置了之后如何访问? 12345678910111213141516171819fetch("http://localhost:1985/api/v1/clients/", { "headers": { 'Authorization': 'Basic ' + btoa(`admin` + ":" + `admin`), ...

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