Skip to content

Commit 4d699f3

Browse files
committed
fix(bean): 修复FastBeanCopier对CharSequence属性的复制支持
1 parent 8c66875 commit 4d699f3

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopierConverterSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public <T> T convert(Object source, Class<T> targetClass, Class[] genericType) {
5858
}
5959
return convert(val, targetClass, genericType);
6060
}
61-
if (targetClass == String.class) {
61+
if (targetClass == String.class || targetClass == CharSequence.class) {
6262
if (source instanceof Date) {
6363
return (T) DateFormatter.toString(((Date) source), "yyyy-MM-dd HH:mm:ss");
6464
}

hsweb-core/src/test/java/org/hswebframework/web/bean/FastBeanCopierTest.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,18 @@ public void testMapList() {
161161

162162
}
163163

164+
@Test
165+
public void testCharSequence() {
166+
CharSequenceTarget beanTarget = FastBeanCopier.copy(new CharSequenceSource("test"), new CharSequenceTarget());
167+
Assert.assertEquals("test", String.valueOf(beanTarget.getValue()));
168+
169+
Map<String, Object> source = new HashMap<>();
170+
source.put("value", 123);
171+
172+
CharSequenceTarget mapTarget = FastBeanCopier.copy(source, new CharSequenceTarget());
173+
Assert.assertEquals("123", String.valueOf(mapTarget.getValue()));
174+
}
175+
164176
@Getter
165177
@Setter
166178
public static class Config {
@@ -178,6 +190,22 @@ public String toString() {
178190
}
179191
}
180192

193+
@Getter
194+
@Setter
195+
public static class CharSequenceSource {
196+
private String value;
197+
198+
public CharSequenceSource(String value) {
199+
this.value = value;
200+
}
201+
}
202+
203+
@Getter
204+
@Setter
205+
public static class CharSequenceTarget {
206+
private CharSequence value;
207+
}
208+
181209
@Test
182210
public void testCopyMap() {
183211

@@ -337,4 +365,4 @@ public static class ExtendableSuper extends DefaultExtendable {
337365
public static class ExtendableExtends extends ExtendableSuper {
338366
private String name;
339367
}
340-
}
368+
}

0 commit comments

Comments
 (0)