feat: 新增 MapModifier 用于链式操作修改 Map 数据 #71

Merged
zhouxy108 merged 4 commits from zhouxy108/plusone-commons:feature/map-modifier into dev 2025-10-22 09:37:05 +08:00
2 changed files with 339 additions and 0 deletions
Showing only changes of commit 3155964b7c - Show all commits

View File

@@ -40,28 +40,28 @@ import com.google.common.annotations.Beta;
*
* <pre>
* // MapModifier
* MapModifier<String, Object> modifier = new MapModifier<String, Object>()
* MapModifier&lt;String, Object&gt; modifier = new MapModifier&lt;String, Object&gt;()
* .putAll(commonProperties)
* .put("username", "Ben")
* .put("accountStatus", LOCKED);
*
* // 从 Supplier 中获取 Map并修改数据
* Map<String, Object> map = modifier.getAndModify(HashMap::new);
* Map&lt;String, Object&gt; map = modifier.getAndModify(HashMap::new);
*
* // 可以灵活使用不同 Map 类型的不同构造器
* Map<String, Object> map = modifier.getAndModify(() -> new HashMap<>(8));
* Map<String, Object> map = modifier.getAndModify(() -> new HashMap<>(anotherMap));
* Map<String, Object> map = modifier.getAndModify(TreeMap::new);
* Map<String, Object> map = modifier.getAndModify(ConcurrentHashMap::new);
* Map&lt;String, Object&gt; map = modifier.getAndModify(() -&gt; new HashMap&lt;&gt;(8));
* Map&lt;String, Object&gt; map = modifier.getAndModify(() -&gt; new HashMap&lt;&gt;(anotherMap));
* Map&lt;String, Object&gt; map = modifier.getAndModify(TreeMap::new);
* Map&lt;String, Object&gt; map = modifier.getAndModify(ConcurrentHashMap::new);
*
* // 修改已有的 Map
* modifier.modify(map);
*
* // 创建一个有初始化数据的不可变的 Map
* Map<String, Object> map = modifier.getUnmodifiableMap();
* Map&lt;String, Object&gt; map = modifier.getUnmodifiableMap();
*
* // 链式调用创建并初始化数据
* Map<String, Object> map = new MapModifier<String, Object>()
* Map&lt;String, Object&gt; map = new MapModifier&lt;String, Object&gt;()
* .putAll(commonProperties)
* .put("username", "Ben")
* .put("accountStatus", LOCKED)