mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-12 08:38:30 +08:00
commit
3dc6b87333
@ -2,6 +2,7 @@ package cn.hutool.core.map;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* Map创建类
|
||||
@ -74,6 +75,36 @@ public class MapBuilder<K, V> implements Serializable{
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 链式Map创建
|
||||
*
|
||||
* @param condition put条件
|
||||
* @param k Key类型
|
||||
* @param v Value类型
|
||||
* @return 当前类
|
||||
*/
|
||||
public MapBuilder<K, V> put(boolean condition, K k, V v) {
|
||||
if (condition) {
|
||||
map.put(k, v);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 链式Map创建
|
||||
*
|
||||
* @param condition put条件
|
||||
* @param k Key类型
|
||||
* @param supplier Value类型结果提供方
|
||||
* @return 当前类
|
||||
*/
|
||||
public MapBuilder<K, V> put(boolean condition, K k, Supplier<V> supplier) {
|
||||
if (condition) {
|
||||
map.put(k, supplier.get());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 链式Map创建
|
||||
*
|
||||
@ -138,4 +169,4 @@ public class MapBuilder<K, V> implements Serializable{
|
||||
return MapUtil.join(this.map, separator, keyValueSeparator, isIgnoreNull);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,29 @@
|
||||
package cn.hutool.core.map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class MapBuilderTest {
|
||||
|
||||
@Test
|
||||
public void conditionPutTest() {
|
||||
Map<String, String> map = MapBuilder.<String, String>create()
|
||||
.put(true, "a", "1")
|
||||
.put(false, "b", "2")
|
||||
.put(true, "c", () -> getValue(3))
|
||||
.put(false, "d", () -> getValue(4))
|
||||
.build();
|
||||
|
||||
Assert.assertEquals(map.get("a"), "1");
|
||||
Assert.assertFalse(map.containsKey("b"));
|
||||
Assert.assertEquals(map.get("c"), "3");
|
||||
Assert.assertFalse(map.containsKey("d"));
|
||||
}
|
||||
|
||||
public String getValue(int value) {
|
||||
System.out.println("getValue: " + value);
|
||||
return String.valueOf(value);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user