public final class Props extends Properties implements TypeGetter<CharSequence>
| Modifier and Type | Field and Description |
|---|---|
static String |
EXT_NAME
默认配置文件扩展名
|
defaults| Constructor and Description |
|---|
Props()
构造
|
Props(File propertiesFile)
构造
|
Props(File propertiesFile,
Charset charset)
构造
|
Props(Properties properties)
构造,使用URL读取
|
Props(Resource resource,
Charset charset)
构造,使用URL读取
|
Props(String path)
构造,使用相对于Class文件根目录的相对路径
|
Props(String path,
Charset charset)
构造,使用相对于Class文件根目录的相对路径
|
| Modifier and Type | Method and Description |
|---|---|
void |
autoLoad(boolean autoReload)
在配置文件变更时自动加载
|
<P,T> T |
get(SerFunction<P,T> func)
根据lambda的方法引用,获取
|
String |
getAndRemoveStr(String... keys)
获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找
|
Object |
getObj(CharSequence key,
Object defaultValue)
获取Object属性值
|
Props |
getSubProps(String prefix)
获取一个新的子属性,子属性键值对拥有公共前缀,以.分隔。
|
void |
load()
重新加载配置文件
|
void |
load(Resource resource)
初始化配置文件
|
void |
load(URL url)
初始化配置文件
|
static Props |
of()
构建一个空的Props,用于手动加入参数
|
static Props |
of(Properties properties)
Properties转为Props |
static Props |
of(String resource)
获得Classpath下的Properties文件
|
static Props |
of(String resource,
Charset charset)
获得Classpath下的Properties文件
|
void |
set(String key,
Object value)
设置值,无给定键创建之。
|
Props |
setFields(SerSupplier<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Setting.of().setFields(user::getNickname, user::getUsername); |
void |
store(String absolutePath)
持久化当前设置,会覆盖掉之前的设置
|
void |
store(String path,
Class<?> clazz)
存储当前设置,会覆盖掉以前的设置
|
<T> T |
toBean(Class<T> beanClass)
将配置文件转换为Bean,支持嵌套Bean
支持的表达式: persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name'] |
<T> T |
toBean(Class<T> beanClass,
String prefix)
将配置文件转换为Bean,支持嵌套Bean
支持的表达式: persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name'] |
<T> T |
toBean(T bean)
将配置文件转换为Bean,支持嵌套Bean
支持的表达式: persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name'] |
<T> T |
toBean(T bean,
String prefix)
将配置文件转换为Bean,支持嵌套Bean
支持的表达式: persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name'] |
Properties |
toProperties()
转换为标准的
Properties对象 |
getProperty, getProperty, list, list, load, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNamesclear, clone, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keys, keySet, merge, put, putAll, putIfAbsent, rehash, remove, remove, replace, replace, 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, getStrpublic static final String EXT_NAME
public Props()
public Props(String path)
path - 配置文件路径,相对于ClassPath,或者使用绝对路径public Props(String path, Charset charset)
path - 相对或绝对路径charset - 自定义编码public Props(File propertiesFile)
propertiesFile - 配置文件对象public Props(File propertiesFile, Charset charset)
propertiesFile - 配置文件对象charset - 自定义编码public Props(Resource resource, Charset charset)
resource - Resourcecharset - 自定义编码public Props(Properties properties)
properties - 属性文件路径public static Props of()
public static Props of(String resource)
resource - 资源(相对Classpath的路径)public static Props of(String resource, Charset charset)
resource - 资源(相对Classpath的路径)charset - 自定义编码public static Props of(Properties properties)
Properties转为Propsproperties - Propertiespublic void load()
public void autoLoad(boolean autoReload)
autoReload - 是否自动加载public Object getObj(CharSequence key, Object defaultValue)
TypeGettergetObj in interface TypeGetter<CharSequence>key - 属性名defaultValue - 默认值public <P,T> T get(SerFunction<P,T> func)
P - 参数类型T - 返回值类型func - 方法引用public String getAndRemoveStr(String... keys)
keys - 键列表,常用于别名public Props getSubProps(String prefix)
a.b
a.c
b.a
则调用getSubProps("a");得到
a.b
a.c
prefix - 前缀,可以不以.结尾public Properties toProperties()
Properties对象Properties对象public <T> T toBean(Class<T> beanClass)
persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
T - Bean类型beanClass - Bean类public <T> T toBean(Class<T> beanClass, String prefix)
persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
T - Bean类型beanClass - Bean类prefix - 公共前缀,不指定前缀传null,当指定前缀后非此前缀的属性被忽略public <T> T toBean(T bean)
persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
T - Bean类型bean - Bean对象public <T> T toBean(T bean,
String prefix)
persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
T - Bean类型bean - Bean对象prefix - 公共前缀,不指定前缀传null,当指定前缀后非此前缀的属性被忽略public Props setFields(SerSupplier<?>... fields)
User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build();
Setting.of().setFields(user::getNickname, user::getUsername);
fields - lambda,不能为空public void store(String absolutePath) throws IORuntimeException
absolutePath - 设置文件的绝对路径IORuntimeException - IO异常,可能为文件未找到Copyright © 2025. All rights reserved.