Skip to content

Commit 44b596b

Browse files
committed
fix(bean): 修复FastBeanCopier对CharSequence属性的复制支持
1 parent 5e8f735 commit 44b596b

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ public <T> T convert(Object source, Class<T> targetClass, Class[] genericType) {
587587
return convert(val, targetClass, genericType);
588588
}
589589
}
590-
if (targetClass == String.class) {
590+
if (targetClass == String.class || targetClass == CharSequence.class) {
591591
if (source instanceof Date) {
592592
// TODO: 18-4-16 自定义格式
593593
return (T) DateFormatter.toString(((Date) source), "yyyy-MM-dd HH:mm:ss");

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)