mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
优化BeanPath.set方法,避免多次重复调用get方法
This commit is contained in:
parent
dacf9c80bb
commit
3b98f64924
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
# 5.8.10.M1 (2022-11-08)
|
# 5.8.10.M1 (2022-11-10)
|
||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【http 】 HttpResponse增加getFileNameFromDisposition方法(pr#2676@Github)
|
* 【http 】 HttpResponse增加getFileNameFromDisposition方法(pr#2676@Github)
|
||||||
@ -11,6 +11,7 @@
|
|||||||
* 【db 】 DialectFactory增加identifyDriver重载(issue#I5YWI6@Gitee)
|
* 【db 】 DialectFactory增加identifyDriver重载(issue#I5YWI6@Gitee)
|
||||||
* 【core 】 去除ClassloaderUtil的Cache(issue#I5YWI6@Gitee)
|
* 【core 】 去除ClassloaderUtil的Cache(issue#I5YWI6@Gitee)
|
||||||
* 【core 】 ClassScanner 增加忽略加载错误类的扫描方法(pr#855@Gitee)
|
* 【core 】 ClassScanner 增加忽略加载错误类的扫描方法(pr#855@Gitee)
|
||||||
|
* 【core 】 优化BeanPath.set方法,避免多次重复调用get方法(pr#865@Gitee)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【db 】 修复分页时order by截断问题(issue#I5X6FM@Gitee)
|
* 【db 】 修复分页时order by截断问题(issue#I5X6FM@Gitee)
|
||||||
|
@ -139,16 +139,18 @@ public class BeanPath implements Serializable {
|
|||||||
* @param bean Bean、Map或List
|
* @param bean Bean、Map或List
|
||||||
* @param patternParts 表达式块列表
|
* @param patternParts 表达式块列表
|
||||||
* @param value 值
|
* @param value 值
|
||||||
|
* @return 值
|
||||||
*/
|
*/
|
||||||
private void set(Object bean, List<String> patternParts, boolean nextNumberPart, Object value) {
|
private Object set(Object bean, List<String> patternParts, boolean nextNumberPart, Object value) {
|
||||||
Object subBean = this.get(patternParts, bean, true);
|
Object subBean = this.get(patternParts, bean, true);
|
||||||
if (null == subBean) {
|
if (null == subBean) {
|
||||||
final List<String> parentParts = getParentParts(patternParts);
|
final List<String> parentParts = getParentParts(patternParts);
|
||||||
this.set(bean, parentParts, lastIsNumber(parentParts), nextNumberPart ? new ArrayList<>() : new HashMap<>());
|
this.set(bean, parentParts, lastIsNumber(parentParts), nextNumberPart ? new ArrayList<>() : new HashMap<>());
|
||||||
//set中有可能做过转换,因此此处重新获取bean
|
// 避免get方法的重复调用
|
||||||
subBean = this.get(patternParts, bean, true);
|
subBean = this.set(bean, parentParts, lastIsNumber(parentParts), nextNumberPart ? new ArrayList<>() : new HashMap<>());
|
||||||
}
|
}
|
||||||
BeanUtil.setFieldValue(subBean, patternParts.get(patternParts.size() - 1), value);
|
BeanUtil.setFieldValue(subBean, patternParts.get(patternParts.size() - 1), value);
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
13
hutool-core/src/test/java/cn/hutool/core/date/chinese/IssueI5YB1ATest.java
Executable file
13
hutool-core/src/test/java/cn/hutool/core/date/chinese/IssueI5YB1ATest.java
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
package cn.hutool.core.date.chinese;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.ChineseDate;
|
||||||
|
import cn.hutool.core.lang.Console;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class IssueI5YB1ATest {
|
||||||
|
@Test
|
||||||
|
public void chineseDateTest() {
|
||||||
|
final ChineseDate date = new ChineseDate(2023, 4, 8, true);
|
||||||
|
Console.log(date.getGregorianDate());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user