博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中判断数据不为空后执行数据操作、防止空指针报错的工具类,safes工具类
阅读量:4135 次
发布时间:2019-05-25

本文共 2439 字,大约阅读时间需要 8 分钟。

问题描述:

//问题描述, 由于集合为null        //会报Exception in thread "main" java.lang.NullPointerException        List
userList = null; userList.forEach(user->{ user.setUserName("李四"); }); System.out.println(userList); //使用该工具类解决问题 List
userList2 = null; Safes.of(userList2).forEach(user->{ user.setUserName("李四"); }); System.out.println(userList2);

工具类代码:

package com.zcst.common.utils;import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.google.common.collect.Sets;import java.math.BigDecimal;import java.util.*;import java.util.function.Consumer;/** * @author Administrator */public class Safes {    public static 
Map
of(Map
source) { return (Map) Optional.ofNullable(source).orElse(Maps.newHashMapWithExpectedSize(0)); } public static
Iterator
of(Iterator
source) { return (Iterator) Optional.ofNullable(source).orElse((Iterator
) Lists.newArrayListWithCapacity(0).iterator()); } public static
Collection
of(Collection
source) { return (Collection) Optional.ofNullable(source).orElse(Lists.newArrayListWithCapacity(0)); } public static
Iterable
of(Iterable
source) { return (Iterable) Optional.ofNullable(source).orElse(Lists.newArrayListWithCapacity(0)); } public static
List
of(List
source) { return (List) Optional.ofNullable(source).orElse(Lists.newArrayListWithCapacity(0)); } public static
Set
of(Set
source) { return (Set) Optional.ofNullable(source).orElse(Sets.newHashSetWithExpectedSize(0)); } public static BigDecimal of(BigDecimal source) { return (BigDecimal) Optional.ofNullable(source).orElse(BigDecimal.ZERO); } public static String of(String source) { return (String) Optional.ofNullable(source).orElse(""); } public static String of(String source, String defaultStr) { return (String) Optional.ofNullable(source).orElse(defaultStr); } public static
T first(Collection
source) { if (CollectionUtils.isEmpty(source)) { return null; } T t = null; Iterator
iterator = source.iterator(); if (iterator.hasNext()) { t = iterator.next(); } return t; } public static void run(Runnable runnable, Consumer
error) { try { runnable.run(); } catch (Throwable t) { error.accept(t); } } static String trimToEmpty(String str) { return str == null ? "" : str.trim(); }}

 

转载地址:http://csxvi.baihongyu.com/

你可能感兴趣的文章
HDU 1495 非常可乐(bfs+标记)
查看>>
HDU 2569 彼岸(递推)
查看>>
HDU 4503 湫湫系列故事——植树节(组合概率)
查看>>
HDU 4500 小Q系列故事——屌丝的逆袭(模拟枚举排序)
查看>>
HDU 4501 小明系列故事——买年货(三重背包)
查看>>
Php连接mysql实现注册信息和文件上传
查看>>
HDU 5253 连接的管道(最小生成树-Kruskal+并查集)
查看>>
HDU 5249 KPI(set+queue+二分查找)(转载)
查看>>
HDU 4502 吉哥系列故事——临时工计划(dp)
查看>>
Web Service调用
查看>>
微信公众号后台java开发实现自动回复机器人
查看>>
linux下shell显示-bash-4.1#不显示路径解决方法
查看>>
设计模式--单例模式
查看>>
Redis学习笔记整理
查看>>
值类型和引用类型
查看>>
杨辉三角(C#版)
查看>>
杨辉三角(C语言)
查看>>
单链表的基本操作
查看>>
顺序表的基本操作(C语言)
查看>>
顺序表的基本操作(C#版)
查看>>