diff --git a/blade-core-tool/src/main/java/org/springblade/core/tool/support/Kv.java b/blade-core-tool/src/main/java/org/springblade/core/tool/support/Kv.java index 204d180..7c499dc 100644 --- a/blade-core-tool/src/main/java/org/springblade/core/tool/support/Kv.java +++ b/blade-core-tool/src/main/java/org/springblade/core/tool/support/Kv.java @@ -22,6 +22,7 @@ import java.sql.Time; import java.sql.Timestamp; import java.util.Date; import java.util.HashMap; +import java.util.Map; /** * 链式map @@ -52,6 +53,51 @@ public class Kv extends LinkedCaseInsensitiveMap { return new Kv(); } + + /** + * 创建Kv + * + * @param value 初始化数据 + * @return Kv + */ + public static Kv create(Kv value) { + Kv kv = new Kv(); + kv.putAll(value); + return kv; + } + + /** + * 从Map创建Kv + * + * @param map 初始化数据 + * @return Kv + */ + public static Kv create(Map map) { + Kv kv = new Kv(); + if (map != null) { + map.forEach((key, value) -> kv.set(String.valueOf(key), value)); + } + return kv; + } + + /** + * 从对象创建Kv + * + * @param value 源对象 + * @return Kv + */ + public static Kv create(Object value) { + Kv kv = new Kv(); + if (value != null) { + if (value instanceof Map) { + return create((Map) value); + } else { + kv.set("object", value); + } + } + return kv; + } + public static HashMap newMap() { return new HashMap<>(16); }