diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java index eabce8de0..7c0d7cb4f 100755 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java @@ -24,11 +24,14 @@ import java.beans.PropertyEditorManager; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -616,6 +619,29 @@ public class BeanUtil { return beanToMap(bean, false, false); } + + /** + * 将bean的部分属性转换成map + * + * @param bean bean + * @param properties 属性值 + * @return Map + */ + public static Map beanToMap(Object bean, String... properties) { + if (ArrayUtil.isEmpty(properties)) { + return Collections.emptyMap(); + } + Set propertiesSet = Arrays.stream(properties).collect(Collectors.toSet()); + // 指明了要复制的属性 所以不忽略null值 + return beanToMap(bean, new HashMap<>(properties.length), false, + property -> { + if (!propertiesSet.contains(property)) { + return null; + } + return property; + }); + } + /** * 对象转Map *