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)); |
即可
相关推荐
2021-10-12
mybatis-plus过滤不需要查询的字段
仁义忠信,乐善不倦,此天爵也 。一一孟子 之前写过过滤出需要查询的字段,也简单介绍了下Mybatis-Plus的select函数 今天写了个小函数,可以直接传入不需要查询出来的字段 12345678910111213/** * 过滤不需要查询的字段 * * @param wrapper 条件构造器 * @param functions 字段 * @return com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<T> * @author <achao1441470436@gmail.com> * @since 2021/10/12 15:51 */@SafeVarargspublic static <T> LambdaQueryWrapper<T> filterProperties(LambdaQueryWrapper<T> wrapper, SFunction<T, Serializable>... functions)...
2022-09-27
graphql-java
不会哭的年轻人是野蛮人,不想笑的老年人是傻瓜——桑塔亚娜 前两天写了graphql的简单介绍博客 今天来拿java简单入个门,首先新建一个项目,因为我这里是用我自己熟悉的方式去写,所以包含了一些看不懂的写法,过两天在写一个保姆级教程 项目地址:https://gitee.com/VampireAchao/simple-graphql 运行springboot主启动类,然后访问 http://localhost:8080/ 可以看到这样一个页面 我们可以在左侧编写graphql的查询语句,点击运行按钮,比如分页查询用户 123456789101112131415{ users(current: 1, size: 2) { current size total records { id name roles { id roleName } } }} 这里这些字段如果不清楚,可以点右侧的Docum...
2021-08-15
mybatis-plus不使用spring
只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰 代码如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667package com.ruben.simplescaffold;import com.baomidou.mybatisplus.core.MybatisConfiguration;import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;import com.baomidou.mybatisplus.core.toolkit.Wrappers;import com.ruben.simplescaffold.entity.UserDetail;import com.ruben.simplescaffold.mapper.UserDetailMapper;import or...
2024-04-28
安卓阴影实现
除了实践以外,没有别的办法可以识别错误。——狄德罗 首先网上找了一圈方案,要么是用UI切图的方式,要么是说用背景或者自带的阴影,这篇文章也说了 阴影组件化,解决安卓不统一问题 - 掘金 UI切图/制作点9图的方式: 这种方式应该是完美还原蓝湖设计图的方式,但不是从技术角度实现 下面还有几个 1. elevation(组件属性) 优点:绘制效率高,使用自带的api不用添加多余的drawable文件,并且支持 translationZ 动画方便实现点击的动画效果;不占位 缺点:低版本不显示,方向颜色不可控,自带的属性设置参数有限; 注意:View要带透明度,否则是没有效果; 2. CardView(组件自带) 优点:CardView是自带阴影的是Materail设计的组件,效率高;不占位 缺点:阴影方向颜色不可控; 注意:CardView模拟的光源在屏幕中心正上方阴影显示角度会有所差异; 3. Shape(作为背景绘制所以会占位,它的绘制原理是一层层的由深到浅的形状作为阴影) 优点:颜色方向可控制;占位 缺点:没有模糊效果阴影不自然有点生硬(较弱的阴影不太容易看出来)...
2024-05-15
jackson范型注意
放弃不难,但坚持一定很酷。——《解忧杂货店》 今天使用 Jackson 有个疑问,就是带范型的对象,Jackson 序列化后,范型会怎样处理: 就比如说{"data":{"data":1}},以及下面这个类: 1234@Datapublic static class Foo<T> { private T data;} 这个外层的 data 会反序列化出来什么类型呢? 实际上反序列化出来 LinkedHashMap 1234var obj = mapper.readValue(""" {"data":{"data":1}} """, Foo.class);Assertions.assertEquals(LinkedHashMap.class, obj.getData().getClass()); 如果我们需要继续解析成具体的类型,则...
2023-10-10
srs信令java版
会赚钱的人,即使身无分文,也还有自身这个财产。——亚兰 前两天讲到了 srs实现多人聊天室 但是遇到个问题,官方的信令是go语言版的,于是在gpt协助下翻译成java版了 https://gitee.com/VampireAchao/simple-srs-signaling 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation=&quo...

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