> map) {
super(map);
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
index 373adc478..cc7e2ccec 100755
--- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
@@ -3420,7 +3420,6 @@ public class CharSequenceUtil extends StrChecker {
/**
* 替换所有正则匹配的文本,并使用自定义函数决定如何替换
* replaceFun可以提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。
- *
*
* replace(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-")
* // 结果为:"ZZZaaabbbccc中文-1234-"
diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/MapProxyTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/MapProxyTest.java
index fbef8399f..d799d1cd7 100644
--- a/hutool-core/src/test/java/cn/hutool/core/collection/MapProxyTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/collection/MapProxyTest.java
@@ -1,15 +1,14 @@
package cn.hutool.core.collection;
+import cn.hutool.core.map.MapProxy;
+import org.junit.Assert;
+import org.junit.Test;
+
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.junit.Assert;
-import org.junit.Test;
-
-import cn.hutool.core.map.MapProxy;
-
public class MapProxyTest {
@Test
@@ -26,6 +25,7 @@ public class MapProxyTest {
Assert.assertFalse(keys.isEmpty());
final Set> entrys = mapProxy.entrySet();
+ //noinspection ConstantConditions
Assert.assertFalse(entrys.isEmpty());
}
diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java
index b7488efc2..52d75769b 100755
--- a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java
@@ -360,6 +360,8 @@ public class ConvertTest {
final String str = "33020000210909112800000124";
final BigDecimal bigDecimal = Convert.toBigDecimal(str);
Assert.assertEquals(str, bigDecimal.toPlainString());
+
+ Assert.assertNull(Convert.toBigDecimal(" "));
}
@Test
diff --git a/hutool-core/src/test/java/cn/hutool/core/stream/AbstractEnhancedWrappedStreamTest.java b/hutool-core/src/test/java/cn/hutool/core/stream/AbstractEnhancedWrappedStreamTest.java
index be03d08bd..73169ef77 100644
--- a/hutool-core/src/test/java/cn/hutool/core/stream/AbstractEnhancedWrappedStreamTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/stream/AbstractEnhancedWrappedStreamTest.java
@@ -62,11 +62,15 @@ public class AbstractEnhancedWrappedStreamTest {
public void testToMap() {
final List list = asList(1, 2, 3);
final Map identityMap = wrap(list).toMap(String::valueOf);
- Assert.assertEquals(new HashMap() {{
- put("1", 1);
- put("2", 2);
- put("3", 3);
- }}, identityMap);
+ Assert.assertEquals(new HashMap() {
+ private static final long serialVersionUID = 1L;
+
+ {
+ put("1", 1);
+ put("2", 2);
+ put("3", 3);
+ }
+ }, identityMap);
}
@Test
@@ -82,11 +86,15 @@ public class AbstractEnhancedWrappedStreamTest {
final List orders = asList(1, 2, 3);
final List list = asList("dromara", "hutool", "sweet");
final Map toZip = wrap(orders).toZip(list);
- Assert.assertEquals(new HashMap() {{
- put(1, "dromara");
- put(2, "hutool");
- put(3, "sweet");
- }}, toZip);
+ Assert.assertEquals(new HashMap() {
+ private static final long serialVersionUID = 1L;
+
+ {
+ put(1, "dromara");
+ put(2, "hutool");
+ put(3, "sweet");
+ }
+ }, toZip);
}
@Test
@@ -150,11 +158,15 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testGrouping() {
final List list = asList(1, 2, 3);
- final Map> map = new HashMap>() {{
- put("1", singletonList(1));
- put("2", singletonList(2));
- put("3", singletonList(3));
- }};
+ final Map> map = new HashMap>() {
+ private static final long serialVersionUID = 1L;
+
+ {
+ put("1", singletonList(1));
+ put("2", singletonList(2));
+ put("3", singletonList(3));
+ }
+ };
Map> group = wrap(list).group(String::valueOf, HashMap::new, Collectors.toList());
Assert.assertEquals(map, group);
@@ -167,10 +179,13 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testPartitioning() {
final List list = asList(1, 2, 3);
- final Map> map = new HashMap>() {{
- put(Boolean.TRUE, singletonList(2));
- put(Boolean.FALSE, asList(1, 3));
- }};
+ final Map> map = new HashMap>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(Boolean.TRUE, singletonList(2));
+ put(Boolean.FALSE, asList(1, 3));
+ }
+ };
Map> partition = wrap(list).partition(t -> (t & 1) == 0, Collectors.toList());
Assert.assertEquals(map, partition);
@@ -553,7 +568,7 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testFlatTree() {
- final Tree root = new Tree(1, asList(new Tree(2, asList(new Tree(3, Collections.emptyList())))));
+ final Tree root = new Tree(1, ListUtil.of(new Tree(2, ListUtil.of(new Tree(3, Collections.emptyList())))));
Assert.assertEquals(3L, wrap(root).flatTree(Tree::getChildren, Tree::setChildren).count());
}
@@ -567,7 +582,7 @@ public class AbstractEnhancedWrappedStreamTest {
@Test
public void testMapNonNull() {
Assert.assertEquals(
- asList("3"), wrap(null, 2, 3, 4).mapNonNull(t -> ((t & 1) == 0) ? null : String.valueOf(t)).toList()
+ ListUtil.of("3"), wrap(null, 2, 3, 4).mapNonNull(t -> ((t & 1) == 0) ? null : String.valueOf(t)).toList()
);
}
@@ -636,7 +651,7 @@ public class AbstractEnhancedWrappedStreamTest {
List zip = wrap(orders).zip(list, (e1, e2) -> e1 + "." + e2).toList();
Assert.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), zip);
- zip = this.wrap((Stream)EasyStream.iterate(1, i -> i + 1)).limit(10).zip(list, (e1, e2) -> e1 + "." + e2).toList();
+ zip = this.wrap((Stream) EasyStream.iterate(1, i -> i + 1)).limit(10).zip(list, (e1, e2) -> e1 + "." + e2).toList();
Assert.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), zip);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/Entity.java b/hutool-db/src/main/java/cn/hutool/db/Entity.java
index 176eb3eea..f9cdb7a54 100755
--- a/hutool-db/src/main/java/cn/hutool/db/Entity.java
+++ b/hutool-db/src/main/java/cn/hutool/db/Entity.java
@@ -8,6 +8,7 @@ import cn.hutool.core.reflect.MethodUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.db.sql.SqlUtil;
import java.nio.charset.Charset;
@@ -273,28 +274,28 @@ public class Entity extends Dict {
// -------------------------------------------------------------------- Get start
/**
- * 获得Clob类型结果
+ * 获得Clob类型结果,如果结果类型非Clob,不做转换,直接抛出异常
*
* @param field 参数
* @return Clob
*/
public Clob getClob(final String field) {
- return get(field, null);
+ return (Clob) get(field);
}
/**
- * 获得Blob类型结果
+ * 获得Blob类型结果,如果结果类型非Blob,不做转换,直接抛出异常
*
* @param field 参数
* @return Blob
* @since 3.0.6
*/
public Blob getBlob(final String field) {
- return get(field, null);
+ return (Blob) get(field);
}
@Override
- public Time getTime(final String field) {
+ public Time getSqlTime(final String field, final Time defaultValue) {
final Object obj = get(field);
Time result = null;
if (null != obj) {
@@ -305,11 +306,11 @@ public class Entity extends Dict {
result = MethodUtil.invoke(obj, "timeValue");
}
}
- return result;
+ return ObjUtil.defaultIfNull(result, defaultValue);
}
@Override
- public Date getDate(final String field) {
+ public Date getDate(final String field, final Date defaultValue) {
final Object obj = get(field);
Date result = null;
if (null != obj) {
@@ -320,11 +321,11 @@ public class Entity extends Dict {
result = MethodUtil.invoke(obj, "dateValue");
}
}
- return result;
+ return ObjUtil.defaultIfNull(result, defaultValue);
}
@Override
- public Timestamp getTimestamp(final String field) {
+ public Timestamp getSqlTimestamp(final String field, final Timestamp defaultValue) {
final Object obj = get(field);
Timestamp result = null;
if (null != obj) {
@@ -335,12 +336,12 @@ public class Entity extends Dict {
result = MethodUtil.invoke(obj, "timestampValue");
}
}
- return result;
+ return ObjUtil.defaultIfNull(result, defaultValue);
}
@Override
- public String getStr(final String field) {
- return getStr(field, CharsetUtil.UTF_8);
+ public String getStr(final String field, final String defaultValue) {
+ return getStr(field, CharsetUtil.UTF_8, defaultValue);
}
/**
@@ -350,10 +351,9 @@ public class Entity extends Dict {
* @param field 字段名
* @param charset 编码
* @return 字段对应值
- * @since 3.0.6
*/
- public String getStr(final String field, final Charset charset) {
- final Object obj = get(field);
+ public String getStr(final String field, final Charset charset, final String defaultValue) {
+ final Object obj = getObj(field, defaultValue);
if (obj instanceof Clob) {
return SqlUtil.clobToStr((Clob) obj);
} else if (obj instanceof Blob) {
@@ -362,7 +362,7 @@ public class Entity extends Dict {
final RowId rowId = (RowId) obj;
return StrUtil.str(rowId.getBytes(), charset);
}
- return super.getStr(field);
+ return super.getStr(field, defaultValue);
}
/**
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/AbstractDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/AbstractDSFactory.java
index 7dd3d5569..5ac0c7d96 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/AbstractDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/AbstractDSFactory.java
@@ -102,7 +102,7 @@ public abstract class AbstractDSFactory extends DSFactory {
}
// 基本信息
- final String url = config.getAndRemoveStr(KEY_ALIAS_URL);
+ final String url = config.getAndRemove(KEY_ALIAS_URL);
if (StrUtil.isBlank(url)) {
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
}
@@ -112,12 +112,12 @@ public abstract class AbstractDSFactory extends DSFactory {
DbUtil.removeShowSqlParams(config);
// 自动识别Driver
- String driver = config.getAndRemoveStr(KEY_ALIAS_DRIVER);
+ String driver = config.getAndRemove(KEY_ALIAS_DRIVER);
if (StrUtil.isBlank(driver)) {
driver = DriverUtil.identifyDriver(url);
}
- final String user = config.getAndRemoveStr(KEY_ALIAS_USER);
- final String pass = config.getAndRemoveStr(KEY_ALIAS_PASSWORD);
+ final String user = config.getAndRemove(KEY_ALIAS_USER);
+ final String pass = config.getAndRemove(KEY_ALIAS_PASSWORD);
return DataSourceWrapper.wrap(createDataSource(url, driver, user, pass, config), driver);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
index b156739d0..33511dd8b 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
@@ -36,7 +36,7 @@ public class BeeDSFactory extends AbstractDSFactory {
// remarks等特殊配置,since 5.3.8
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
beeConfig.addConnectProperty(key, connValue);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/c3p0/C3p0DSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/c3p0/C3p0DSFactory.java
index 175aee9d6..148c56e63 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/c3p0/C3p0DSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/c3p0/C3p0DSFactory.java
@@ -46,7 +46,7 @@ public class C3p0DSFactory extends AbstractDSFactory {
final Props connProps = new Props();
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
connProps.setProperty(key, connValue);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/dbcp/DbcpDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/dbcp/DbcpDSFactory.java
index 8f190418b..a6aa80fa2 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/dbcp/DbcpDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/dbcp/DbcpDSFactory.java
@@ -38,7 +38,7 @@ public class DbcpDSFactory extends AbstractDSFactory {
// remarks等特殊配置,since 5.3.8
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
ds.addConnectionProperty(key, connValue);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/druid/DruidDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/druid/DruidDSFactory.java
index 71a6dca67..97ba452a0 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/druid/DruidDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/druid/DruidDSFactory.java
@@ -49,7 +49,7 @@ public class DruidDSFactory extends AbstractDSFactory {
// Druid中也可以通过 druid.connectProperties 属性设置
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
ds.addConnectionProperty(key, connValue);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java
index 0b0ecfbe6..dbb57fb3d 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java
@@ -34,7 +34,7 @@ public class HikariDSFactory extends AbstractDSFactory {
final Props connProps = new Props();
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
connProps.setProperty(key, connValue);
}
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/pooled/DbSetting.java b/hutool-db/src/main/java/cn/hutool/db/ds/pooled/DbSetting.java
index f12745109..60a899d9b 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/pooled/DbSetting.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/pooled/DbSetting.java
@@ -54,22 +54,22 @@ public class DbSetting {
final DbConfig dbConfig = new DbConfig();
// 基本信息
- final String url = config.getAndRemoveStr(DSFactory.KEY_ALIAS_URL);
+ final String url = config.getAndRemove(DSFactory.KEY_ALIAS_URL);
if (StrUtil.isBlank(url)) {
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
}
dbConfig.setUrl(url);
// 自动识别Driver
- final String driver = config.getAndRemoveStr(DSFactory.KEY_ALIAS_DRIVER);
+ final String driver = config.getAndRemove(DSFactory.KEY_ALIAS_DRIVER);
dbConfig.setDriver(StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url));
- dbConfig.setUser(config.getAndRemoveStr(DSFactory.KEY_ALIAS_USER));
- dbConfig.setPass(config.getAndRemoveStr(DSFactory.KEY_ALIAS_PASSWORD));
+ dbConfig.setUser(config.getAndRemove(DSFactory.KEY_ALIAS_USER));
+ dbConfig.setPass(config.getAndRemove(DSFactory.KEY_ALIAS_PASSWORD));
// 连接池相关信息
- dbConfig.setInitialSize(setting.getInt("initialSize", group, 0));
- dbConfig.setMinIdle(setting.getInt("minIdle", group, 0));
- dbConfig.setMaxActive(setting.getInt("maxActive", group, 8));
- dbConfig.setMaxWait(setting.getLong("maxWait", group, 6000L));
+ dbConfig.setInitialSize(setting.getIntByGroup("initialSize", group, 0));
+ dbConfig.setMinIdle(setting.getIntByGroup("minIdle", group, 0));
+ dbConfig.setMaxActive(setting.getIntByGroup("maxActive", group, 8));
+ dbConfig.setMaxWait(setting.getLongByGroup("maxWait", group, 6000L));
// remarks等特殊配置,since 5.3.8
String connValue;
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/simple/SimpleDataSource.java b/hutool-db/src/main/java/cn/hutool/db/ds/simple/SimpleDataSource.java
index 9b2aa3df9..6e21137f7 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/simple/SimpleDataSource.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/simple/SimpleDataSource.java
@@ -86,10 +86,10 @@ public class SimpleDataSource extends AbstractDataSource {
}
init(//
- config.getAndRemoveStr(DSFactory.KEY_ALIAS_URL), //
- config.getAndRemoveStr(DSFactory.KEY_ALIAS_USER), //
- config.getAndRemoveStr(DSFactory.KEY_ALIAS_PASSWORD), //
- config.getAndRemoveStr(DSFactory.KEY_ALIAS_DRIVER)//
+ config.getAndRemove(DSFactory.KEY_ALIAS_URL), //
+ config.getAndRemove(DSFactory.KEY_ALIAS_USER), //
+ config.getAndRemove(DSFactory.KEY_ALIAS_PASSWORD), //
+ config.getAndRemove(DSFactory.KEY_ALIAS_DRIVER)//
);
// 其它连接参数
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/tomcat/TomcatDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/tomcat/TomcatDSFactory.java
index 53535a84a..94975f446 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/tomcat/TomcatDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/tomcat/TomcatDSFactory.java
@@ -46,7 +46,7 @@ public class TomcatDSFactory extends AbstractDSFactory {
final Props connProps = new Props();
String connValue;
for (final String key : KEY_CONN_PROPS) {
- connValue = poolSetting.getAndRemoveStr(key);
+ connValue = poolSetting.getAndRemove(key);
if(StrUtil.isNotBlank(connValue)){
connProps.setProperty(key, connValue);
}
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java
index 8a01af8ab..063cd7d04 100755
--- a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java
@@ -271,7 +271,7 @@ public class JSONConfig implements Serializable {
* @return this
* @since 5.8.5
*/
- public JSONConfig setCheckDuplicate(boolean checkDuplicate) {
+ public JSONConfig setCheckDuplicate(final boolean checkDuplicate) {
this.checkDuplicate = checkDuplicate;
return this;
}
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONGetter.java b/hutool-json/src/main/java/cn/hutool/json/JSONGetter.java
index 15b586f21..0dab8cced 100644
--- a/hutool-json/src/main/java/cn/hutool/json/JSONGetter.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSONGetter.java
@@ -1,11 +1,9 @@
package cn.hutool.json;
-import cn.hutool.core.convert.ConvertException;
-import cn.hutool.core.lang.getter.OptNullBasicTypeFromObjectGetter;
+import cn.hutool.core.lang.getter.TypeGetter;
import cn.hutool.core.util.ObjUtil;
-import java.time.LocalDateTime;
-import java.util.Date;
+import java.lang.reflect.Type;
import java.util.List;
/**
@@ -14,7 +12,7 @@ import java.util.List;
* @param Key类型
* @author Looly
*/
-public interface JSONGetter extends OptNullBasicTypeFromObjectGetter {
+public interface JSONGetter extends TypeGetter {
/**
* 获取JSON配置
@@ -126,49 +124,12 @@ public interface JSONGetter extends OptNullBasicTypeFromObjectGetter {
}
@Override
- default Date getDate(final K key, final Date defaultValue) {
- return get(key, Date.class);
- }
-
- /**
- * 获取{@link LocalDateTime}类型值
- *
- * @param key 键
- * @param defaultValue 默认值
- * @return {@link LocalDateTime}
- * @since 5.7.7
- */
- default LocalDateTime getLocalDateTime(final K key, final LocalDateTime defaultValue) {
- return ObjUtil.defaultIfNull(get(key, LocalDateTime.class), defaultValue);
- }
-
- /**
- * 获取byte[]数据
- *
- * @param key 键
- * @return 值
- */
- default byte[] getBytes(final K key) {
- return get(key, byte[].class);
- }
-
- /**
- * 获取指定类型的对象
- *
- * @param 获取的对象类型
- * @param key 键
- * @param type 获取对象类型
- * @return 对象
- * @throws ConvertException 转换异常
- * @since 3.0.8
- */
- @SuppressWarnings("unchecked")
- default T get(final K key, final Class type) throws ConvertException {
+ default T get(final K key, final Type type, final T defaultValue) {
final Object value = this.getObj(key);
if (ObjUtil.isNull(value)) {
- return null;
+ return defaultValue;
}
- return (T) getConfig().getConverter().convert(type, value);
+ return (T) getConfig().getConverter().convert(type, value, defaultValue);
}
}
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/AbsSetting.java b/hutool-setting/src/main/java/cn/hutool/setting/AbsSetting.java
index 617aa2119..1b35526a5 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/AbsSetting.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/AbsSetting.java
@@ -3,13 +3,11 @@ package cn.hutool.setting;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.bean.copier.ValueProvider;
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.lang.getter.OptNullBasicTypeFromStringGetter;
+import cn.hutool.core.lang.getter.GroupedTypeGetter;
+import cn.hutool.core.lang.getter.TypeGetter;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.ObjUtil;
-import cn.hutool.log.Log;
-import cn.hutool.log.LogFactory;
import java.io.Serializable;
import java.lang.reflect.Type;
@@ -19,35 +17,22 @@ import java.lang.reflect.Type;
*
* @author Looly
*/
-public abstract class AbsSetting implements OptNullBasicTypeFromStringGetter, Serializable {
+public abstract class AbsSetting implements TypeGetter,
+ GroupedTypeGetter, Serializable {
private static final long serialVersionUID = 6200156302595905863L;
- private final static Log log = LogFactory.get();
/**
* 数组类型值默认分隔符
*/
- public final static String DEFAULT_DELIMITER = ",";
+ public final static String DEFAULT_DELIMITER = StrUtil.COMMA;
/**
* 默认分组
*/
public final static String DEFAULT_GROUP = StrUtil.EMPTY;
@Override
- public String getStr(final String key, final String defaultValue) {
- return getStr(key, DEFAULT_GROUP, defaultValue);
- }
-
- /**
- * 获得字符串类型值
- *
- * @param key KEY
- * @param group 分组
- * @param defaultValue 默认值
- * @return 值,如果字符串为{@code null}返回默认值
- */
- public String getStr(final String key, final String group, final String defaultValue) {
- final String value = getByGroup(key, group);
- return ObjUtil.defaultIfNull(value, defaultValue);
+ public Object getObj(final CharSequence key, final Object defaultValue) {
+ return ObjUtil.defaultIfNull(getObjByGroup(key, DEFAULT_GROUP), defaultValue);
}
/**
@@ -57,53 +42,11 @@ public abstract class AbsSetting implements OptNullBasicTypeFromStringGetter
+ * 若配置文件中键值对类似于:
+ *
+ * a = 1,2,3,4
+ *
+ * 则获取结果为:[1, 2, 3, 4]
*
* @param key 属性名
* @param group 分组名
* @return 属性值
*/
- public String[] getStrings(final String key, final String group) {
- return getStrings(key, group, DEFAULT_DELIMITER);
+ public String[] getStrsByGroup(final CharSequence key, final CharSequence group) {
+ return getStrsByGroup(key, group, DEFAULT_DELIMITER);
}
/**
- * 获得数组型
+ * 获得数组型,可自定义分隔符
+ * 假定分隔符为逗号,若配置文件中键值对类似于:
+ *
+ * a = 1,2,3,4
+ *
+ * 则获取结果为:[1, 2, 3, 4]
*
* @param key 属性名
* @param group 分组名
* @param delimiter 分隔符
* @return 属性值
*/
- public String[] getStrings(final String key, final String group, final String delimiter) {
- final String value = getByGroup(key, group);
+ public String[] getStrsByGroup(final CharSequence key, final CharSequence group, final CharSequence delimiter) {
+ final String value = getStrByGroup(key, group);
if (StrUtil.isBlank(value)) {
return null;
}
return StrUtil.splitToArray(value, delimiter);
}
- // --------------------------------------------------------------- Get int
-
- /**
- * 获取数字型型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @return 属性值
- */
- public Integer getInt(final String key, final String group) {
- return getInt(key, group, null);
- }
-
- /**
- * 获取数字型型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @param defaultValue 默认值
- * @return 属性值
- */
- public Integer getInt(final String key, final String group, final Integer defaultValue) {
- return Convert.toInt(getByGroup(key, group), defaultValue);
- }
-
- // --------------------------------------------------------------- Get bool
-
- /**
- * 获取布尔型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @return 属性值
- */
- public Boolean getBool(final String key, final String group) {
- return getBool(key, group, null);
- }
-
- /**
- * 获取布尔型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @param defaultValue 默认值
- * @return 属性值
- */
- public Boolean getBool(final String key, final String group, final Boolean defaultValue) {
- return Convert.toBool(getByGroup(key, group), defaultValue);
- }
-
- // --------------------------------------------------------------- Get long
-
- /**
- * 获取long类型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @return 属性值
- */
- public Long getLong(final String key, final String group) {
- return getLong(key, group, null);
- }
-
- /**
- * 获取long类型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @param defaultValue 默认值
- * @return 属性值
- */
- public Long getLong(final String key, final String group, final Long defaultValue) {
- return Convert.toLong(getByGroup(key, group), defaultValue);
- }
-
- // --------------------------------------------------------------- Get char
-
- /**
- * 获取char类型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @return 属性值
- */
- public Character getChar(final String key, final String group) {
- final String value = getByGroup(key, group);
- if (StrUtil.isBlank(value)) {
- return null;
- }
- return value.charAt(0);
- }
-
- // --------------------------------------------------------------- Get double
-
- /**
- * 获取double类型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @return 属性值
- */
- public Double getDouble(final String key, final String group) {
- return getDouble(key, group, null);
- }
-
- /**
- * 获取double类型属性值
- *
- * @param key 属性名
- * @param group 分组名
- * @param defaultValue 默认值
- * @return 属性值
- */
- public Double getDouble(final String key, final String group, final Double defaultValue) {
- return Convert.toDouble(getByGroup(key, group), defaultValue);
- }
-
/**
* 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法
* 只支持基本类型的转换
@@ -285,17 +121,17 @@ public abstract class AbsSetting implements OptNullBasicTypeFromStringGetter T toBean(final String group, final T bean) {
+ public T toBean(final CharSequence group, final T bean) {
return BeanUtil.fillBean(bean, new ValueProvider() {
@Override
public Object value(final String key, final Type valueType) {
- return getByGroup(key, group);
+ return getObjByGroup(key, group);
}
@Override
public boolean containsKey(final String key) {
- return null != getByGroup(key, group);
+ return null != getObjByGroup(key, group);
}
}, CopyOptions.of());
}
@@ -310,7 +146,7 @@ public abstract class AbsSetting implements OptNullBasicTypeFromStringGetter T toBean(final String group, final Class beanClass) {
+ public T toBean(final CharSequence group, final Class beanClass) {
return toBean(group, ConstructorUtil.newInstanceIfPossible(beanClass));
}
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/GroupedMap.java b/hutool-setting/src/main/java/cn/hutool/setting/GroupedMap.java
index 51da1f6fc..7f75585e8 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/GroupedMap.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/GroupedMap.java
@@ -35,12 +35,12 @@ public class GroupedMap extends LinkedHashMap map = this.get(StrUtil.emptyIfNull(group));
if (MapUtil.isNotEmpty(map)) {
- return map.get(key);
+ return map.get(StrUtil.str(key));
}
} finally {
readLock.unlock();
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/Setting.java b/hutool-setting/src/main/java/cn/hutool/setting/Setting.java
index cbdf31652..d87f4e3ba 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/Setting.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/Setting.java
@@ -4,11 +4,8 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.io.resource.ClassPathResource;
-import cn.hutool.core.io.resource.FileResource;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.io.resource.ResourceUtil;
-import cn.hutool.core.io.resource.UrlResource;
import cn.hutool.core.io.watch.SimpleWatcher;
import cn.hutool.core.io.watch.WatchMonitor;
import cn.hutool.core.io.watch.WatchUtil;
@@ -85,6 +82,11 @@ public class Setting extends AbsSetting implements Map {
*/
protected Resource resource;
+ /**
+ * 当获取key对应值为{@code null}时是否打印debug日志提示用户,默认{@code false}
+ */
+ private boolean logIfNull;
+
private SettingLoader settingLoader;
private WatchMonitor watchMonitor;
@@ -137,32 +139,7 @@ public class Setting extends AbsSetting implements Map {
*/
public Setting(final File configFile, final Charset charset, final boolean isUseVariable) {
Assert.notNull(configFile, "Null setting file define!");
- this.init(new FileResource(configFile), charset, isUseVariable);
- }
-
- /**
- * 构造,相对于classes读取文件
- *
- * @param path 相对ClassPath路径或绝对路径
- * @param clazz 基准类
- * @param charset 字符集
- * @param isUseVariable 是否使用变量
- */
- public Setting(final String path, final Class> clazz, final Charset charset, final boolean isUseVariable) {
- Assert.notBlank(path, "Blank setting path !");
- this.init(new ClassPathResource(path, clazz), charset, isUseVariable);
- }
-
- /**
- * 构造
- *
- * @param url 设定文件的URL
- * @param charset 字符集
- * @param isUseVariable 是否使用变量
- */
- public Setting(final URL url, final Charset charset, final boolean isUseVariable) {
- Assert.notNull(url, "Null setting url define!");
- this.init(new UrlResource(url), charset, isUseVariable);
+ this.init(ResourceUtil.getResource(configFile), charset, isUseVariable);
}
/**
@@ -278,26 +255,12 @@ public class Setting extends AbsSetting implements Map {
}
@Override
- public String getByGroup(final String key, final String group) {
- return this.groupedMap.get(group, key);
- }
-
- /**
- * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找
- *
- * @param keys 键列表,常用于别名
- * @return 值
- * @since 3.1.2
- */
- public Object getAndRemove(final String... keys) {
- Object value = null;
- for (final String key : keys) {
- value = remove(key);
- if (null != value) {
- break;
- }
+ public Object getObjByGroup(final CharSequence key, final CharSequence group, final Object defaultValue) {
+ final String result = this.groupedMap.get(group, key);
+ if (result == null && logIfNull) {
+ StaticLog.debug("No key [{}] in group [{}] !", key, group);
}
- return value;
+ return result;
}
/**
@@ -307,7 +270,7 @@ public class Setting extends AbsSetting implements Map {
* @return 字符串值
* @since 3.1.2
*/
- public String getAndRemoveStr(final String... keys) {
+ public String getAndRemove(final String... keys) {
String value = null;
for (final String key : keys) {
value = remove(key);
@@ -467,6 +430,16 @@ public class Setting extends AbsSetting implements Map {
return this;
}
+ /**
+ * 设置当获取key对应值为{@code null}时是否打印debug日志提示用户
+ * @param logIfNull 当获取key对应值为{@code null}时是否打印debug日志提示用户
+ * @return this
+ */
+ public Setting setLogIfNull(final boolean logIfNull){
+ this.logIfNull = logIfNull;
+ return this;
+ }
+
// ------------------------------------------------- Map interface with group
/**
@@ -501,17 +474,6 @@ public class Setting extends AbsSetting implements Map {
return this.groupedMap.containsValue(group, value);
}
- /**
- * 获取分组对应的值,如果分组不存在或者值不存在则返回null
- *
- * @param group 分组
- * @param key 键
- * @return 值,如果分组不存在或者值不存在则返回null
- */
- public String get(final String group, final String key) {
- return this.groupedMap.get(group, key);
- }
-
/**
* 将键值对加入到对应分组中
*
@@ -666,7 +628,7 @@ public class Setting extends AbsSetting implements Map {
*/
@Override
public String get(final Object key) {
- return this.groupedMap.get(DEFAULT_GROUP, Convert.toStr(key));
+ return getStr((String)key);
}
/**
@@ -689,7 +651,7 @@ public class Setting extends AbsSetting implements Map {
*/
@Override
public String remove(final Object key) {
- return this.groupedMap.remove(DEFAULT_GROUP, Convert.toStr(key));
+ return remove(DEFAULT_GROUP, key);
}
/**
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/dialect/Props.java b/hutool-setting/src/main/java/cn/hutool/setting/dialect/Props.java
index e198d5d4a..6d2e24cc7 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/dialect/Props.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/dialect/Props.java
@@ -1,12 +1,9 @@
package cn.hutool.setting.dialect;
import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.io.resource.ClassPathResource;
-import cn.hutool.core.io.resource.FileResource;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.io.resource.UrlResource;
@@ -14,26 +11,22 @@ import cn.hutool.core.io.watch.SimpleWatcher;
import cn.hutool.core.io.watch.WatchMonitor;
import cn.hutool.core.io.watch.WatchUtil;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.lang.getter.BasicTypeGetter;
-import cn.hutool.core.lang.getter.OptBasicTypeGetter;
+import cn.hutool.core.lang.getter.TypeGetter;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.log.StaticLog;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
-import java.math.BigDecimal;
-import java.math.BigInteger;
import java.net.URL;
import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.WatchEvent;
-import java.util.Date;
import java.util.Properties;
/**
@@ -41,7 +34,7 @@ import java.util.Properties;
*
* @author loolly
*/
-public final class Props extends Properties implements BasicTypeGetter, OptBasicTypeGetter {
+public final class Props extends Properties implements TypeGetter {
private static final long serialVersionUID = 1935981579709590740L;
/**
@@ -78,29 +71,18 @@ public final class Props extends Properties implements BasicTypeGetter,
* @param resource 资源(相对Classpath的路径)
* @return Props
*/
- public static Props getProp(final String resource) {
+ public static Props of(final String resource) {
return new Props(resource);
}
- /**
- * 获得Classpath下的Properties文件
- *
- * @param resource 资源(相对Classpath的路径)
- * @param charsetName 字符集
- * @return Properties
- */
- public static Props getProp(final String resource, final String charsetName) {
- return new Props(resource, charsetName);
- }
-
/**
* 获得Classpath下的Properties文件
*
* @param resource 资源(相对Classpath的路径)
- * @param charset 字符集
+ * @param charset 自定义编码
* @return Properties
*/
- public static Props getProp(final String resource, final Charset charset) {
+ public static Props of(final String resource, final Charset charset) {
return new Props(resource, charset);
}
@@ -118,24 +100,14 @@ public final class Props extends Properties implements BasicTypeGetter,
* @param path 配置文件路径,相对于ClassPath,或者使用绝对路径
*/
public Props(final String path) {
- this(path, CharsetUtil.ISO_8859_1);
- }
-
- /**
- * 构造,使用相对于Class文件根目录的相对路径
- *
- * @param path 相对或绝对路径
- * @param charsetName 字符集
- */
- public Props(final String path, final String charsetName) {
- this(path, CharsetUtil.charset(charsetName));
+ this(path, null);
}
/**
* 构造,使用相对于Class文件根目录的相对路径
*
* @param path 相对或绝对路径
- * @param charset 字符集
+ * @param charset 自定义编码
*/
public Props(final String path, final Charset charset) {
Assert.notBlank(path, "Blank properties file path !");
@@ -151,98 +123,35 @@ public final class Props extends Properties implements BasicTypeGetter,
* @param propertiesFile 配置文件对象
*/
public Props(final File propertiesFile) {
- this(propertiesFile, StandardCharsets.ISO_8859_1);
+ this(propertiesFile, null);
}
/**
* 构造
*
* @param propertiesFile 配置文件对象
- * @param charsetName 字符集
- */
- public Props(final File propertiesFile, final String charsetName) {
- this(propertiesFile, Charset.forName(charsetName));
- }
-
- /**
- * 构造
- *
- * @param propertiesFile 配置文件对象
- * @param charset 字符集
+ * @param charset 自定义编码
*/
public Props(final File propertiesFile, final Charset charset) {
Assert.notNull(propertiesFile, "Null properties file!");
- this.charset = charset;
- this.load(new FileResource(propertiesFile));
- }
-
- /**
- * 构造,相对于classes读取文件
- *
- * @param path 相对路径
- * @param clazz 基准类
- */
- public Props(final String path, final Class> clazz) {
- this(path, clazz, CharsetUtil.NAME_ISO_8859_1);
- }
-
- /**
- * 构造,相对于classes读取文件
- *
- * @param path 相对路径
- * @param clazz 基准类
- * @param charsetName 字符集
- */
- public Props(final String path, final Class> clazz, final String charsetName) {
- this(path, clazz, CharsetUtil.charset(charsetName));
- }
-
- /**
- * 构造,相对于classes读取文件
- *
- * @param path 相对路径
- * @param clazz 基准类
- * @param charset 字符集
- */
- public Props(final String path, final Class> clazz, final Charset charset) {
- Assert.notBlank(path, "Blank properties file path !");
if (null != charset) {
this.charset = charset;
}
- this.load(new ClassPathResource(path, clazz));
+ this.load(ResourceUtil.getResource(propertiesFile));
}
/**
* 构造,使用URL读取
*
- * @param propertiesUrl 属性文件路径
+ * @param resource {@link Resource}
+ * @param charset 自定义编码
*/
- public Props(final URL propertiesUrl) {
- this(propertiesUrl, StandardCharsets.ISO_8859_1);
- }
-
- /**
- * 构造,使用URL读取
- *
- * @param propertiesUrl 属性文件路径
- * @param charsetName 字符集
- */
- public Props(final URL propertiesUrl, final String charsetName) {
- this(propertiesUrl, CharsetUtil.charset(charsetName));
- }
-
- /**
- * 构造,使用URL读取
- *
- * @param propertiesUrl 属性文件路径
- * @param charset 字符集
- */
- public Props(final URL propertiesUrl, final Charset charset) {
- Assert.notNull(propertiesUrl, "Null properties URL !");
+ public Props(final Resource resource, final Charset charset) {
+ Assert.notNull(resource, "Null properties URL !");
if (null != charset) {
this.charset = charset;
}
- this.load(propertiesUrl);
+ this.load(resource);
}
/**
@@ -316,167 +225,9 @@ public final class Props extends Properties implements BasicTypeGetter,
}
}
- // ----------------------------------------------------------------------- Get start
@Override
- public Object getObj(final String key, final Object defaultValue) {
- return getStr(key, null == defaultValue ? null : defaultValue.toString());
- }
-
- @Override
- public Object getObj(final String key) {
- return getObj(key, null);
- }
-
- @Override
- public String getStr(final String key, final String defaultValue) {
- return super.getProperty(key, defaultValue);
- }
-
- @Override
- public String getStr(final String key) {
- return super.getProperty(key);
- }
-
- @Override
- public Integer getInt(final String key, final Integer defaultValue) {
- return Convert.toInt(getStr(key), defaultValue);
- }
-
- @Override
- public Integer getInt(final String key) {
- return getInt(key, null);
- }
-
- @Override
- public Boolean getBool(final String key, final Boolean defaultValue) {
- return Convert.toBool(getStr(key), defaultValue);
- }
-
- @Override
- public Boolean getBool(final String key) {
- return getBool(key, null);
- }
-
- @Override
- public Long getLong(final String key, final Long defaultValue) {
- return Convert.toLong(getStr(key), defaultValue);
- }
-
- @Override
- public Long getLong(final String key) {
- return getLong(key, null);
- }
-
- @Override
- public Character getChar(final String key, final Character defaultValue) {
- final String value = getStr(key);
- if (StrUtil.isBlank(value)) {
- return defaultValue;
- }
- return value.charAt(0);
- }
-
- @Override
- public Character getChar(final String key) {
- return getChar(key, null);
- }
-
- @Override
- public Float getFloat(final String key) {
- return getFloat(key, null);
- }
-
- @Override
- public Float getFloat(final String key, final Float defaultValue) {
- return Convert.toFloat(getStr(key), defaultValue);
- }
-
- @Override
- public Double getDouble(final String key, final Double defaultValue) throws NumberFormatException {
- return Convert.toDouble(getStr(key), defaultValue);
- }
-
- @Override
- public Double getDouble(final String key) throws NumberFormatException {
- return getDouble(key, null);
- }
-
- @Override
- public Short getShort(final String key, final Short defaultValue) {
- return Convert.toShort(getStr(key), defaultValue);
- }
-
- @Override
- public Short getShort(final String key) {
- return getShort(key, null);
- }
-
- @Override
- public Byte getByte(final String key, final Byte defaultValue) {
- return Convert.toByte(getStr(key), defaultValue);
- }
-
- @Override
- public Byte getByte(final String key) {
- return getByte(key, null);
- }
-
- @Override
- public BigDecimal getBigDecimal(final String key, final BigDecimal defaultValue) {
- final String valueStr = getStr(key);
- if (StrUtil.isBlank(valueStr)) {
- return defaultValue;
- }
-
- try {
- return new BigDecimal(valueStr);
- } catch (final Exception e) {
- return defaultValue;
- }
- }
-
- @Override
- public BigDecimal getBigDecimal(final String key) {
- return getBigDecimal(key, null);
- }
-
- @Override
- public BigInteger getBigInteger(final String key, final BigInteger defaultValue) {
- final String valueStr = getStr(key);
- if (StrUtil.isBlank(valueStr)) {
- return defaultValue;
- }
-
- try {
- return new BigInteger(valueStr);
- } catch (final Exception e) {
- return defaultValue;
- }
- }
-
- @Override
- public BigInteger getBigInteger(final String key) {
- return getBigInteger(key, null);
- }
-
- @Override
- public > E getEnum(final Class clazz, final String key, final E defaultValue) {
- return Convert.toEnum(clazz, getStr(key), defaultValue);
- }
-
- @Override
- public > E getEnum(final Class clazz, final String key) {
- return getEnum(clazz, key, null);
- }
-
- @Override
- public Date getDate(final String key, final Date defaultValue) {
- return Convert.toDate(getStr(key), defaultValue);
- }
-
- @Override
- public Date getDate(final String key) {
- return getDate(key, null);
+ public Object getObj(final CharSequence key, final Object defaultValue) {
+ return ObjUtil.defaultIfNull(getProperty(StrUtil.str(key)), defaultValue);
}
/**
diff --git a/hutool-setting/src/test/java/cn/hutool/setting/PropsTest.java b/hutool-setting/src/test/java/cn/hutool/setting/PropsTest.java
index 7cf081368..2fbeaa19d 100644
--- a/hutool-setting/src/test/java/cn/hutool/setting/PropsTest.java
+++ b/hutool-setting/src/test/java/cn/hutool/setting/PropsTest.java
@@ -1,8 +1,6 @@
package cn.hutool.setting;
import cn.hutool.core.date.DateUtil;
-import cn.hutool.log.LogFactory;
-import cn.hutool.log.dialect.console.ConsoleLogFactory;
import cn.hutool.setting.dialect.Props;
import lombok.Data;
import org.junit.Assert;
@@ -16,7 +14,7 @@ import java.util.Map;
import java.util.Objects;
/**
- * Setting单元测试
+ * Props单元测试
*
* @author Looly
*
@@ -25,7 +23,7 @@ public class PropsTest {
@Before
public void init() {
- LogFactory.setCurrentLogFactory(ConsoleLogFactory.class);
+ //LogFactory.setCurrentLogFactory(ConsoleLogFactory.class);
}
@Test
@@ -53,7 +51,7 @@ public class PropsTest {
@Test
public void toBeanTest() {
- final Props props = Props.getProp("to_bean_test.properties");
+ final Props props = Props.of("to_bean_test.properties");
final ConfigProperties cfg = props.toBean(ConfigProperties.class, "mail");
Assert.assertEquals("mailer@mail.com", cfg.getHost());
diff --git a/hutool-setting/src/test/java/cn/hutool/setting/SettingTest.java b/hutool-setting/src/test/java/cn/hutool/setting/SettingTest.java
index 2d66b21d7..22992393d 100644
--- a/hutool-setting/src/test/java/cn/hutool/setting/SettingTest.java
+++ b/hutool-setting/src/test/java/cn/hutool/setting/SettingTest.java
@@ -17,15 +17,15 @@ public class SettingTest {
//noinspection MismatchedQueryAndUpdateOfCollection
final Setting setting = new Setting("test.setting", true);
- final String driver = setting.getByGroup("driver", "demo");
+ final String driver = setting.getStrByGroup("driver", "demo");
Assert.assertEquals("com.mysql.jdbc.Driver", driver);
//本分组变量替换
- final String user = setting.getByGroup("user", "demo");
+ final String user = setting.getStrByGroup("user", "demo");
Assert.assertEquals("rootcom.mysql.jdbc.Driver", user);
//跨分组变量替换
- final String user2 = setting.getByGroup("user2", "demo");
+ final String user2 = setting.getStrByGroup("user2", "demo");
Assert.assertEquals("rootcom.mysql.jdbc.Driver", user2);
//默认值测试
@@ -50,9 +50,9 @@ public class SettingTest {
setting.setByGroup("user", "group3", "root3");
setting.set("user", "root4");
- Assert.assertEquals("root", setting.getByGroup("user", "group1"));
- Assert.assertEquals("root2", setting.getByGroup("user", "group2"));
- Assert.assertEquals("root3", setting.getByGroup("user", "group3"));
+ Assert.assertEquals("root", setting.getStrByGroup("user", "group1"));
+ Assert.assertEquals("root2", setting.getStrByGroup("user", "group2"));
+ Assert.assertEquals("root3", setting.getStrByGroup("user", "group3"));
Assert.assertEquals("root4", setting.get("user"));
}
diff --git a/hutool-setting/src/test/java/cn/hutool/setting/SettingUtilTest.java b/hutool-setting/src/test/java/cn/hutool/setting/SettingUtilTest.java
index 7bab45428..b3be1fe6c 100644
--- a/hutool-setting/src/test/java/cn/hutool/setting/SettingUtilTest.java
+++ b/hutool-setting/src/test/java/cn/hutool/setting/SettingUtilTest.java
@@ -7,13 +7,13 @@ public class SettingUtilTest {
@Test
public void getTest() {
- final String driver = SettingUtil.get("test").get("demo", "driver");
+ final String driver = SettingUtil.get("test").getStrByGroup("driver", "demo");
Assert.assertEquals("com.mysql.jdbc.Driver", driver);
}
@Test
public void getTest2() {
- final String driver = SettingUtil.get("example/example").get("demo", "key");
+ final String driver = SettingUtil.get("example/example").getStrByGroup("key", "demo");
Assert.assertEquals("value", driver);
}
@@ -21,7 +21,7 @@ public class SettingUtilTest {
public void getFirstFoundTest() {
//noinspection ConstantConditions
final String driver = SettingUtil.getFirstFound("test2", "test")
- .get("demo", "driver");
+ .getStrByGroup("driver", "demo");
Assert.assertEquals("com.mysql.jdbc.Driver", driver);
}
}