Package org.miaixz.bus.core.center.map
Class Dictionary
java.lang.Object
org.miaixz.bus.core.center.map.MapWrapper<String,Object>
org.miaixz.bus.core.center.map.TransMap<String,Object>
org.miaixz.bus.core.center.map.CustomKeyMap<String,Object>
org.miaixz.bus.core.center.map.Dictionary
- All Implemented Interfaces:
Serializable,Cloneable,Iterable<Map.Entry<String,,Object>> Map<String,,Object> TypeGetter<String>,Wrapper<Map<String,,Object>> Provider
字典对象,扩充了LinkedHashMap中的方法
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
-
Constructor Summary
ConstructorsConstructorDescription构造Dictionary(boolean caseInsensitive) 构造Dictionary(int initialCapacity) 构造Dictionary(int initialCapacity, boolean caseInsensitive) 构造Dictionary(int initialCapacity, float loadFactor) 构造Dictionary(int initialCapacity, float loadFactor, boolean caseInsensitive) 构造Dictionary(Map<String, Object> m) 构造 -
Method Summary
Modifier and TypeMethodDescriptionclone()protected String自定义键过滤Map保留指定键值对,如果键不存在跳过<P,T> T 根据lambda的方法引用,获取<T> T获得特定类型值<T> T通过表达式获取JSON中嵌套的对象 .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值<T> T通过表达式获取JSON中嵌套的对象 .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值 获取表达式对应值后转换为对应类型的值获取Object属性值static Dictionaryof()创建Dictstatic Dictionary根据给定的Entry数组创建Dict对象static Dictionary根据给定的键值对数组创建Dict对象,传入参数必须为key,value,data,value...static <T> Dictionaryparse(T bean) 将PO对象转为Dict<T> DictionaryparseBean(T bean) 将值对象转换为Dict 类名会被当作表名,小写第一个字母<T> DictionaryparseBean(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) 将值对象转换为Dict 类名会被当作表名,小写第一个字母<T extends Dictionary>
voidremoveEqual(T dict, String... withoutNames) 与给定实体对比并去除相同的部分 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段 version from 2.0.0过滤Map去除指定键值对,如果键不存在跳过设置列通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:setIgnoreNull(String attr, Object value) 设置列,当键或值为null时忽略<T> T填充Value Object对象<T> TtoBean(T bean) 转换为Bean对象<T> TtoBeanIgnoreCase(Class<T> clazz) 填充Value Object对象,忽略大小写<T> TtoBeanIgnoreCase(T bean) 转换为Bean对象Methods inherited from class org.miaixz.bus.core.center.map.CustomKeyMap
customValueMethods inherited from class org.miaixz.bus.core.center.map.TransMap
compute, computeIfAbsent, computeIfPresent, containsKey, get, getOrDefault, merge, put, putAll, putIfAbsent, remove, remove, replace, replaceMethods inherited from class org.miaixz.bus.core.center.map.MapWrapper
clear, containsValue, entrySet, equals, forEach, getRaw, hashCode, isEmpty, iterator, keySet, replaceAll, size, toString, valuesMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.miaixz.bus.core.lang.getter.TypeGetter
get, get, get, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBool, getBool, getByte, getByte, getBytes, getBytes, getChar, getChar, getDate, getDate, getDouble, getDouble, getEnum, getEnum, getFloat, getFloat, getInt, getInt, getLocalDate, getLocalDate, getLocalDateTime, getLocalDateTime, getLocalTime, getLocalTime, getLong, getLong, getNumber, getNumber, getObject, getShort, getShort, getSqlTime, getSqlTime, getSqlTimestamp, getSqlTimestamp, getString, getString
-
Constructor Details
-
Dictionary
public Dictionary()构造 -
Dictionary
public Dictionary(boolean caseInsensitive) 构造- Parameters:
caseInsensitive- 是否大小写不敏感
-
Dictionary
public Dictionary(int initialCapacity) 构造- Parameters:
initialCapacity- 初始容量
-
Dictionary
public Dictionary(int initialCapacity, boolean caseInsensitive) 构造- Parameters:
initialCapacity- 初始容量caseInsensitive- 是否大小写不敏感
-
Dictionary
public Dictionary(int initialCapacity, float loadFactor) 构造- Parameters:
initialCapacity- 初始容量loadFactor- 容量增长因子,0~1,即达到容量的百分之多少时扩容
-
Dictionary
public Dictionary(int initialCapacity, float loadFactor, boolean caseInsensitive) 构造- Parameters:
initialCapacity- 初始容量loadFactor- 容量增长因子,0~1,即达到容量的百分之多少时扩容caseInsensitive- 是否大小写不敏感
-
Dictionary
构造- Parameters:
m- Map
-
-
Method Details
-
of
创建Dict- Returns:
- Dictionary
-
parse
将PO对象转为Dict- Type Parameters:
T- Bean类型- Parameters:
bean- Bean对象- Returns:
- Vo
-
ofEntries
根据给定的Entry数组创建Dict对象- Parameters:
pairs- 键值对- Returns:
- Dictionary
-
ofKvs
根据给定的键值对数组创建Dict对象,传入参数必须为key,value,data,value...奇数参数必须为key,key最后会转换为String类型。
偶数参数必须为value,可以为任意类型。
Dictionary dict = Dictionary.of("RED", "#FF0000", "GREEN", "#00FF00", "BLUE", "#0000FF");- Parameters:
keysAndValues- 键值对列表,必须奇数参数为key,偶数参数为value- Returns:
- Dictionary
-
toBean
public <T> T toBean(T bean) 转换为Bean对象- Type Parameters:
T- Bean类型- Parameters:
bean- Bean- Returns:
- Bean
-
toBeanIgnoreCase
public <T> T toBeanIgnoreCase(T bean) 转换为Bean对象- Type Parameters:
T- Bean类型- Parameters:
bean- Bean- Returns:
- Bean
-
toBean
填充Value Object对象- Type Parameters:
T- Bean类型- Parameters:
clazz- Value Object(或者POJO)的类- Returns:
- vo
-
toBeanIgnoreCase
填充Value Object对象,忽略大小写- Type Parameters:
T- Bean类型- Parameters:
clazz- Value Object(或者POJO)的类- Returns:
- vo
-
parseBean
将值对象转换为Dict 类名会被当作表名,小写第一个字母- Type Parameters:
T- Bean类型- Parameters:
bean- 值对象- Returns:
- 自己
-
parseBean
将值对象转换为Dict 类名会被当作表名,小写第一个字母- Type Parameters:
T- Bean类型- Parameters:
bean- 值对象isToUnderlineCase- 是否转换为下划线模式ignoreNullValue- 是否忽略值为空的字段- Returns:
- 自己
-
removeEqual
与给定实体对比并去除相同的部分 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段 version from 2.0.0- Type Parameters:
T- 字典对象类型- Parameters:
dict- 字典对象withoutNames- 不需要去除的字段名
-
filterNew
过滤Map保留指定键值对,如果键不存在跳过- Parameters:
keys- 键列表- Returns:
- Dictionary 结果
-
removeNew
过滤Map去除指定键值对,如果键不存在跳过- Parameters:
keys- 键列表- Returns:
- Dictionary 结果
-
set
设置列- Parameters:
attr- 属性value- 值- Returns:
- 本身
-
setIgnoreNull
设置列,当键或值为null时忽略- Parameters:
attr- 属性value- 值- Returns:
- 本身
-
getObject
Description copied from interface:TypeGetter获取Object属性值- Specified by:
getObjectin interfaceTypeGetter<String>- Parameters:
key- 属性名defaultValue- 默认值- Returns:
- 属性值,无对应值返回defaultValue
-
get
根据lambda的方法引用,获取- Type Parameters:
P- 参数类型T- 返回值类型- Parameters:
func- 方法引用- Returns:
- 获取表达式对应属性和返回的对象
-
getBean
获得特定类型值- Type Parameters:
T- 值类型- Parameters:
attr- 字段名- Returns:
- 字段值
-
getByPath
通过表达式获取JSON中嵌套的对象- .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
- []表达式,可以获取集合等对象中对应index的值
- Type Parameters:
T- 目标类型- Parameters:
expression- 表达式- Returns:
- 对象
- See Also:
-
getByPath
通过表达式获取JSON中嵌套的对象- .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
- []表达式,可以获取集合等对象中对应index的值
- Type Parameters:
T- 返回值类型- Parameters:
expression- 表达式resultType- 返回值类型- Returns:
- 对象
- See Also:
-
clone
- Overrides:
clonein classMapWrapper<String,Object>
-
customKey
Description copied from class:TransMap自定义键 -
setFields
通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:User user = GenericBuilder.of(User::new).with(User::setUsername, "name").build(); Dictionary.create().setFields(user::getNickname, user::getUsername);
- Parameters:
fields- lambda,不能为空- Returns:
- this
-