diff --git a/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java b/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java index 1bb50177b..fdb5fec9f 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java @@ -587,7 +587,7 @@ public T convert(Object source, Class targetClass, Class[] genericType) { return convert(val, targetClass, genericType); } } - if (targetClass == String.class) { + if (targetClass == String.class || targetClass == CharSequence.class) { if (source instanceof Date) { // TODO: 18-4-16 自定义格式 return (T) DateFormatter.toString(((Date) source), "yyyy-MM-dd HH:mm:ss"); diff --git a/hsweb-core/src/test/java/org/hswebframework/web/bean/FastBeanCopierTest.java b/hsweb-core/src/test/java/org/hswebframework/web/bean/FastBeanCopierTest.java index 111c3a17c..c69bce1ed 100644 --- a/hsweb-core/src/test/java/org/hswebframework/web/bean/FastBeanCopierTest.java +++ b/hsweb-core/src/test/java/org/hswebframework/web/bean/FastBeanCopierTest.java @@ -161,6 +161,19 @@ public void testMapList() { } + @Test + public void testCharSequence() { + StringBuilder builder = new StringBuilder("test"); + CharSequenceTarget beanTarget = FastBeanCopier.copy(new CharSequenceSource(builder), new CharSequenceTarget()); + Assert.assertSame(builder, beanTarget.getValue()); + + Map source = new HashMap<>(); + source.put("value", 123); + + CharSequenceTarget mapTarget = FastBeanCopier.copy(source, new CharSequenceTarget()); + Assert.assertEquals("123", String.valueOf(mapTarget.getValue())); + } + @Getter @Setter public static class Config { @@ -178,6 +191,22 @@ public String toString() { } } + @Getter + @Setter + public static class CharSequenceSource { + private CharSequence value; + + public CharSequenceSource(CharSequence value) { + this.value = value; + } + } + + @Getter + @Setter + public static class CharSequenceTarget { + private CharSequence value; + } + @Test public void testCopyMap() { @@ -337,4 +366,4 @@ public static class ExtendableSuper extends DefaultExtendable { public static class ExtendableExtends extends ExtendableSuper { private String name; } -} \ No newline at end of file +}