Java是否提供类似map.putIfValueNotNull的方法?实现非空值存入Map
嘿,这个问题问得很接地气!Java标准库本身确实没有直接提供putIfValueNotNull(key, value)这种现成方法,但咱们有好几种优雅的方式实现这个需求,不用每次都写烦人的null检查~
1. 自己封装工具方法(最推荐,复用性强)
如果你的项目里经常需要这个逻辑,不如写个简单的静态工具类,以后直接调用就行:
import java.util.Map; public class MapHelper { // 泛型方法,适配所有类型的Map public static <K, V> void putIfValueNotNull(Map<K, V> map, K key, V value) { if (value != null) { map.put(key, value); } } }
用的时候就这么写:MapHelper.putIfValueNotNull(userMap, "email", userEmail);,干净利落,还能统一维护逻辑。
2. 用Java 8+的Optional一行搞定
要是不想单独写工具类,用Java 8引入的Optional也能实现一行代码的简洁写法:
Optional.ofNullable(userNickname).ifPresent(nick -> userMap.put("nickname", nick));
这个写法可读性也不错,适合偶尔使用的场景,不用额外加工具类。
3. 借助第三方库的现成方法
如果你项目里已经在用像Guava这样的工具库,那直接用它的Maps.putIfNotNull()方法就好:
Maps.putIfNotNull(userMap, "age", userAge);
省得自己写代码,前提是你的项目依赖里已经包含了Guava。
内容的提问来源于stack exchange,提问作者David stands with Ukraine
相关产品推荐
相关产品推荐

