From d5262798d2e2cd668cd9b90490399e9ddad3708a Mon Sep 17 00:00:00 2001 From: zhou-hao Date: Wed, 3 Jul 2019 15:44:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96bean=20copier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/hswebframework/web/bean/FastBeanCopier.java | 10 +++++----- .../test/java/org/hswebframework/web/bean/Source.java | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) 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 b0aa4690a..00dfc7514 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 @@ -141,8 +141,8 @@ public final class FastBeanCopier { String method = "public void copy(Object s, Object t, java.util.Set ignore, " + "org.hswebframework.web.bean.Converter converter){\n" + "try{\n\t" + - sourceName + " source=(" + sourceName + ")s;\n\t" + - tartName + " target=(" + tartName + ")t;\n\t" + + sourceName + " $$__source=(" + sourceName + ")s;\n\t" + + tartName + " $$__target=(" + tartName + ")t;\n\t" + createCopierCode(source, target) + "}catch(Exception e){\n" + "\tthrow new RuntimeException(e.getMessage(),e);" + @@ -211,7 +211,7 @@ public final class FastBeanCopier { } code.append("if(!ignore.contains(\"").append(sourceProperty.getName()).append("\")){\n\t"); if (!sourceProperty.isPrimitive()) { - code.append("if(source.").append(sourceProperty.getReadMethod()).append("!=null){\n"); + code.append("if($$__source.").append(sourceProperty.getReadMethod()).append("!=null){\n"); } code.append(targetProperty.generateVar(targetProperty.getName())).append("=") .append(sourceProperty.generateGetter(target, targetProperty.getType())) @@ -220,7 +220,7 @@ public final class FastBeanCopier { if (!targetProperty.isPrimitive()) { code.append("\tif(").append(sourceProperty.getName()).append("!=null){\n"); } - code.append("\ttarget.").append(targetProperty.generateSetter(targetProperty.getType(), sourceProperty.getName())).append(";\n"); + code.append("\t$$__target.").append(targetProperty.generateSetter(targetProperty.getType(), sourceProperty.getName())).append(";\n"); if (!targetProperty.isPrimitive()) { code.append("\t}\n"); } @@ -310,7 +310,7 @@ public final class FastBeanCopier { public BiFunction createGetterFunction() { return (targetBeanType, targetType) -> { - String getterCode = "source." + getReadMethod(); + String getterCode = "$$__source." + getReadMethod(); String generic = "org.hswebframework.web.bean.FastBeanCopier.EMPTY_CLASS_ARRAY"; Field field = ReflectionUtils.findField(targetBeanType, name); diff --git a/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java b/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java index 44b5ed20e..872891df2 100644 --- a/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java +++ b/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java @@ -55,6 +55,9 @@ public class Source { private String[] arr6 = {"1", "2"}; + private String source; + + private String target; }