mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
commit
3dc6b87333
@ -2,6 +2,7 @@ package cn.hutool.core.map;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Map创建类
|
* Map创建类
|
||||||
@ -74,6 +75,36 @@ public class MapBuilder<K, V> implements Serializable{
|
|||||||
return this;
|
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创建
|
* 链式Map创建
|
||||||
*
|
*
|
||||||
|
@ -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…
x
Reference in New Issue
Block a user