mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
修复BeanUtil.copyProperties中mapToMap时key被转为String问题
This commit is contained in:
@@ -879,7 +879,7 @@ public class BeanUtilTest {
|
||||
//setIgnoreNullValue(true).
|
||||
//setIgnoreCase(false).
|
||||
setFieldEditor(entry->{
|
||||
entry.setKey(StrUtil.toCamelCase(entry.getKey()));
|
||||
entry.setKey(StrUtil.toCamelCase(entry.getKey().toString()));
|
||||
return entry;
|
||||
});
|
||||
|
||||
|
@@ -46,7 +46,7 @@ public class Issue1687Test {
|
||||
|
||||
// 补救别名错位
|
||||
final CopyOptions copyOptions = CopyOptions.of().setFieldMapping(
|
||||
MapUtil.builder("depart", "depId").build()
|
||||
MapUtil.builder((Object)"depart", (Object)"depId").build()
|
||||
);
|
||||
final SysUser sysUser = BeanUtil.toBean(sysUserFb, SysUser.class, copyOptions);
|
||||
|
||||
|
@@ -35,7 +35,7 @@ public class Issue2202Test {
|
||||
headerMap.put("wechatpay-signature", "signature");
|
||||
final ResponseSignVerifyParams case1 = BeanUtil.toBean(headerMap, ResponseSignVerifyParams.class,
|
||||
CopyOptions.of().setFieldEditor(entry -> {
|
||||
entry.setKey(NamingCase.toCamelCase(entry.getKey(), '-'));
|
||||
entry.setKey(NamingCase.toCamelCase(entry.getKey().toString(), '-'));
|
||||
return entry;
|
||||
}));
|
||||
|
||||
|
@@ -14,7 +14,7 @@ public class Issue3497Test {
|
||||
public void setFieldEditorTest() {
|
||||
final Map<String, String> aB = MapUtil.builder("a_b", "1").build();
|
||||
final Map<?, ?> bean = BeanUtil.toBean(aB, Map.class, CopyOptions.of().setFieldEditor((entry)->{
|
||||
entry.setKey(StrUtil.toCamelCase(entry.getKey()));
|
||||
entry.setKey(StrUtil.toCamelCase(entry.getKey().toString()));
|
||||
return entry;
|
||||
}));
|
||||
Assertions.assertEquals(bean.toString(), "{aB=1}");
|
||||
|
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2024. looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* https://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.core.bean;
|
||||
|
||||
import lombok.Data;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
public class Issue3645Test {
|
||||
@Test
|
||||
public void copyPropertiesTest() {
|
||||
final User p = new User();
|
||||
p.setUserId(123L);
|
||||
|
||||
final Map<Long, User> map = new HashMap<>();
|
||||
map.put(123L,p);
|
||||
|
||||
final Map<Long, User> m = new HashMap<>();
|
||||
BeanUtil.copyProperties(map, m);
|
||||
final User u = m.get(123L);
|
||||
assertNotNull(u);
|
||||
}
|
||||
|
||||
@Data
|
||||
static class User{
|
||||
private Long userId;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user