From e02114312679392ce16c26c5ba221d5a1db482cf Mon Sep 17 00:00:00 2001 From: zhongzixiang Date: Thu, 28 Apr 2022 16:21:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=86bean=E7=9A=84?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=B1=9E=E6=80=A7=E8=BD=AC=E6=8D=A2=E6=88=90?= =?UTF-8?q?map=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/bean/BeanUtil.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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 *