public class Dict extends CustomKeyMap<String,Object> implements TypeGetter<String>
Modifier and Type | Field and Description |
---|---|
protected boolean |
caseInsensitive
是否大小写不敏感
|
Constructor and Description |
---|
Dict()
构造
|
Dict(boolean caseInsensitive)
构造
|
Dict(int initialCapacity)
构造
|
Dict(int initialCapacity,
boolean caseInsensitive)
构造
|
Dict(int initialCapacity,
float loadFactor)
构造
|
Dict(int initialCapacity,
float loadFactor,
boolean caseInsensitive)
构造
|
Dict(Map<String,Object> m)
构造
|
Modifier and Type | Method and Description |
---|---|
Dict |
clone() |
protected String |
customKey(Object key)
自定义键
|
Dict |
filterNew(String... keys)
过滤Map保留指定键值对,如果键不存在跳过
|
<P,T> T |
get(SerFunction<P,T> func)
根据lambda的方法引用,获取
|
<T> T |
getBean(String attr)
获得特定类型值
|
<T> T |
getByPath(String expression)
通过表达式获取JSON中嵌套的对象
.表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值 表达式栗子: persion persion.name persons[3] person.friends[5].name |
<T> T |
getByPath(String expression,
Type resultType)
通过表达式获取JSON中嵌套的对象
.表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值 表达式栗子: persion persion.name persons[3] person.friends[5].name 获取表达式对应值后转换为对应类型的值 |
Object |
getObj(String key,
Object defaultValue)
获取Object属性值
|
static Dict |
of()
创建Dict
|
static Dict |
ofEntries(Map.Entry<String,Object>... pairs)
根据给定的Entry数组创建Dict对象
|
static Dict |
ofKvs(Object... keysAndValues)
根据给定的键值对数组创建Dict对象,传入参数必须为key,value,key,value...
|
static <T> Dict |
parse(T bean)
将PO对象转为Dict
|
<T> Dict |
parseBean(T bean)
将值对象转换为Dict
类名会被当作表名,小写第一个字母 |
<T> Dict |
parseBean(T bean,
boolean isToUnderlineCase,
boolean ignoreNullValue)
将值对象转换为Dict
类名会被当作表名,小写第一个字母 |
<T extends Dict> |
removeEqual(T dict,
String... withoutNames)
与给定实体对比并去除相同的部分
此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段 version from 2.0.0 |
Dict |
removeNew(String... keys)
过滤Map去除指定键值对,如果键不存在跳过
|
Dict |
set(String attr,
Object value)
设置列
|
Dict |
setFields(SerSupplier<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Dict.create().setFields(user::getNickname, user::getUsername); |
Dict |
setIgnoreNull(String attr,
Object value)
设置列,当键或值为null时忽略
|
<T> T |
toBean(Class<T> clazz)
填充Value Object对象
|
<T> T |
toBean(T bean)
转换为Bean对象
|
<T> T |
toBeanIgnoreCase(Class<T> clazz)
填充Value Object对象,忽略大小写
|
<T> T |
toBeanIgnoreCase(T bean)
转换为Bean对象
|
customValue
compute, computeIfAbsent, computeIfPresent, containsKey, get, getOrDefault, merge, put, putAll, putIfAbsent, remove, remove, replace, replace
clear, containsValue, entrySet, equals, forEach, getRaw, hashCode, isEmpty, iterator, keySet, replaceAll, size, toString, values
finalize, getClass, notify, notifyAll, wait, wait, wait
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, getObj, getShort, getShort, getSqlTime, getSqlTime, getSqlTimestamp, getSqlTimestamp, getStr, getStr
forEach, spliterator
public Dict()
public Dict(boolean caseInsensitive)
caseInsensitive
- 是否大小写不敏感public Dict(int initialCapacity)
initialCapacity
- 初始容量public Dict(int initialCapacity, boolean caseInsensitive)
initialCapacity
- 初始容量caseInsensitive
- 是否大小写不敏感public Dict(int initialCapacity, float loadFactor)
initialCapacity
- 初始容量loadFactor
- 容量增长因子,0~1,即达到容量的百分之多少时扩容public Dict(int initialCapacity, float loadFactor, boolean caseInsensitive)
initialCapacity
- 初始容量loadFactor
- 容量增长因子,0~1,即达到容量的百分之多少时扩容caseInsensitive
- 是否大小写不敏感public static Dict of()
public static <T> Dict parse(T bean)
T
- Bean类型bean
- Bean对象@SafeVarargs public static Dict ofEntries(Map.Entry<String,Object>... pairs)
pairs
- 键值对public static Dict ofKvs(Object... keysAndValues)
奇数参数必须为key,key最后会转换为String类型。
偶数参数必须为value,可以为任意类型。
Dict dict = Dict.of( "RED", "#FF0000", "GREEN", "#00FF00", "BLUE", "#0000FF" );
keysAndValues
- 键值对列表,必须奇数参数为key,偶数参数为valuepublic <T> T toBean(T bean)
T
- Bean类型bean
- Beanpublic <T> T toBeanIgnoreCase(T bean)
T
- Bean类型bean
- Beanpublic <T> T toBean(Class<T> clazz)
T
- Bean类型clazz
- Value Object(或者POJO)的类public <T> T toBeanIgnoreCase(Class<T> clazz)
T
- Bean类型clazz
- Value Object(或者POJO)的类public <T> Dict parseBean(T bean)
T
- Bean类型bean
- 值对象public <T> Dict parseBean(T bean, boolean isToUnderlineCase, boolean ignoreNullValue)
T
- Bean类型bean
- 值对象isToUnderlineCase
- 是否转换为下划线模式ignoreNullValue
- 是否忽略值为空的字段public <T extends Dict> void removeEqual(T dict, String... withoutNames)
T
- 字典对象类型dict
- 字典对象withoutNames
- 不需要去除的字段名public Dict filterNew(String... keys)
keys
- 键列表public Dict removeNew(String... keys)
keys
- 键列表public Dict setIgnoreNull(String attr, Object value)
attr
- 属性value
- 值public Object getObj(String key, Object defaultValue)
TypeGetter
getObj
in interface TypeGetter<String>
key
- 属性名defaultValue
- 默认值public <P,T> T get(SerFunction<P,T> func)
P
- 参数类型T
- 返回值类型func
- 方法引用public <T> T getBean(String attr)
T
- 值类型attr
- 字段名public <T> T getByPath(String expression)
表达式栗子:
persion persion.name persons[3] person.friends[5].name
T
- 目标类型expression
- 表达式BeanPath.getValue(Object)
public <T> T getByPath(String expression, Type resultType)
表达式栗子:
persion persion.name persons[3] person.friends[5].name
获取表达式对应值后转换为对应类型的值
T
- 返回值类型expression
- 表达式resultType
- 返回值类型BeanPath.getValue(Object)
public Dict clone()
clone
in class MapWrapper<String,Object>
public Dict setFields(SerSupplier<?>... fields)
User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Dict.create().setFields(user::getNickname, user::getUsername);
fields
- lambda,不能为空Copyright © 2025. All rights reserved.