Package org.aoju.bus.core.map
Class Dictionary
java.lang.Object
-
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> map) 构造 -
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,key,value...static <T> Dictionaryparse(T bean) 将PO对象转为Dict<T> DictionaryparseBean(T bean) 将值对象转换为Dictionary 类名会被当作表名,小写第一个字母<T> DictionaryparseBean(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) 将值对象转换为Dictionary 类名会被当作表名,小写第一个字母<T extends Dictionary>
voidremoveEqual(T dict, String... withoutNames) 与给定实体对比并去除相同的部分 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段设置列通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:setIgnoreNull(String attr, Object value) 设置列,当键或值为null时忽略<T> T填充Value Object对象<T> TtoBean(T bean) 转换为Bean对象<T> TtoBean(T bean, boolean isToCamelCase) 转换为Bean对象<T> TtoBeanIgnoreCase(Class<T> clazz) 填充Value Object对象,忽略大小写<T> TtoBeanIgnoreCase(T bean) 转换为Bean对象<T> TtoBeanWithCamelCase(T bean) 转换为Bean对象,并使用驼峰法模式转换Methods inherited from class org.aoju.bus.core.map.CustomKeyMap
customValueMethods inherited from class org.aoju.bus.core.map.TransitionMap
compute, computeIfAbsent, computeIfPresent, containsKey, get, getOrDefault, merge, put, putAll, putIfAbsent, remove, remove, replace, replaceMethods inherited from class org.aoju.bus.core.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.aoju.bus.core.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
-
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- 是否大小写不敏感
-
-
Method Details
-
of
-
parse
将PO对象转为Dict- Type Parameters:
T- Bean类型- Parameters:
bean- Bean对象- Returns:
- Vo
-
ofEntries
根据给定的Entry数组创建Dict对象- Parameters:
pairs- 键值对- Returns:
- this
-
ofKvs
根据给定的键值对数组创建Dict对象,传入参数必须为key,value,key,value... 奇数参数必须为key,key最后会转换为String类型 奇数参数必须为value,可以为任意类型Dictionary dict = Dictionary.of("RED", "#FF0000", "GREEN", "#00FF00", "BLUE", "#0000FF");- Parameters:
keysAndValues- 键值对列表,必须奇数参数为key,偶数参数为value- Returns:
- this
-
toBean
public <T> T toBean(T bean) 转换为Bean对象- Type Parameters:
T- Bean类型- Parameters:
bean- Bean- Returns:
- the object
-
toBeanIgnoreCase
public <T> T toBeanIgnoreCase(T bean) 转换为Bean对象- Type Parameters:
T- Bean类型- Parameters:
bean- Bean- Returns:
- the object
-
toBean
public <T> T toBean(T bean, boolean isToCamelCase) 转换为Bean对象- Type Parameters:
T- Bean类型- Parameters:
bean- BeanisToCamelCase- 是否转换为驼峰模式- Returns:
- the object
-
toBeanWithCamelCase
public <T> T toBeanWithCamelCase(T bean) 转换为Bean对象,并使用驼峰法模式转换- Type Parameters:
T- Bean类型- Parameters:
bean- Bean- Returns:
- the object
-
toBean
填充Value Object对象- Type Parameters:
T- Bean类型- Parameters:
clazz- Value Object(或者POJO)的类- Returns:
- the object
-
toBeanIgnoreCase
填充Value Object对象,忽略大小写- Type Parameters:
T- Bean类型- Parameters:
clazz- Value Object(或者POJO)的类- Returns:
- the object
-
parseBean
将值对象转换为Dictionary 类名会被当作表名,小写第一个字母- Type Parameters:
T- Bean类型- Parameters:
bean- 值对象- Returns:
- this
-
parseBean
将值对象转换为Dictionary 类名会被当作表名,小写第一个字母- Type Parameters:
T- Bean类型- Parameters:
bean- 值对象isToUnderlineCase- 是否转换为下划线模式ignoreNullValue- 是否忽略值为空的字段- Returns:
- this
-
removeEqual
与给定实体对比并去除相同的部分 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段- Type Parameters:
T- 字典对象类型- Parameters:
dict- 字典对象withoutNames- 不需要去除的字段名
-
filter
-
set
-
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的值
表达式栗子:
persion persion.name persons[3] person.friends[5].name
- Type Parameters:
T- 目标类型- Parameters:
expression- 表达式- Returns:
- the object
-
getByPath
通过表达式获取JSON中嵌套的对象- .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
- []表达式,可以获取集合等对象中对应index的值
表达式栗子:
persion persion.name persons[3] person.friends[5].name
获取表达式对应值后转换为对应类型的值
- Type Parameters:
T- 返回值类型- Parameters:
expression- 表达式resultType- 返回值类型- Returns:
- the object
-
clone
- Overrides:
clonein classMapWrapper<String,Object>
-
customKey
Description copied from class:TransitionMap自定义键- Specified by:
customKeyin classTransitionMap<String,Object> - Parameters:
key- KEY- Returns:
- 自定义KEY
-
setFields
通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:User user = GenericBuilder.of(User::new).with(User::setUsername, "bus").build(); Dictionary.of().setFields(user::getNickname, user::getUsername);
- Parameters:
fields- lambda,不能为空- Returns:
- this
-