Merge pull request #2292 from MQPearth/v5-dev

新增将bean的部分属性转换成map的方法
This commit is contained in:
Golden Looly 2022-04-28 17:08:12 +08:00 committed by GitHub
commit 2d2819ad28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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<String, Object> beanToMap(Object bean, String... properties) {
if (ArrayUtil.isEmpty(properties)) {
return Collections.emptyMap();
}
Set<String> 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
*