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, stringPropertyNames
clear, 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, 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
public 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
- Resource
charset
- 自定义编码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
- Properties
public void load()
public void autoLoad(boolean autoReload)
autoReload
- 是否自动加载public Object getObj(CharSequence key, Object defaultValue)
TypeGetter
getObj
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.