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对象
|
customValuecompute, computeIfAbsent, computeIfPresent, containsKey, get, getOrDefault, merge, put, putAll, putIfAbsent, remove, remove, replace, replaceclear, containsValue, entrySet, equals, forEach, getRaw, hashCode, isEmpty, iterator, keySet, replaceAll, size, toString, valuesfinalize, getClass, notify, notifyAll, wait, wait, waitget, 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, getStrforEach, spliteratorpublic 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)
TypeGettergetObj 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.