本文共 2439 字,大约阅读时间需要 8 分钟。
问题描述:
//问题描述, 由于集合为null //会报Exception in thread "main" java.lang.NullPointerException ListuserList = 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 staticMap 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/