From 348b0652b63bd5b04d21fb435a4c9266d196651c Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 28 Jul 2022 21:22:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=9C=A8=E9=9D=9E=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E6=A8=A1=E5=BC=8F=E4=B8=8B=EF=BC=8C=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=80=BC=E4=B8=BAnull=E5=88=99=E4=B8=8D?= =?UTF-8?q?=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/core/bean/copier/CopyOptions.java | 2 +- .../core/bean/copier/BeanCopierTest.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java index 85b6d216b..122ade5d5 100755 --- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java @@ -292,7 +292,7 @@ public class CopyOptions implements Serializable { } /** - * 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,非{@code null}则写,否则忽略。如果覆盖,则不判断直接写 + * 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,为{@code null}则写,否则忽略。如果覆盖,则不判断直接写 * * @param override 是否覆盖目标值 * @return this diff --git a/hutool-core/src/test/java/cn/hutool/core/bean/copier/BeanCopierTest.java b/hutool-core/src/test/java/cn/hutool/core/bean/copier/BeanCopierTest.java index 369631104..f459c7f94 100644 --- a/hutool-core/src/test/java/cn/hutool/core/bean/copier/BeanCopierTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/bean/copier/BeanCopierTest.java @@ -55,6 +55,26 @@ public class BeanCopierTest { Assert.assertEquals("123", b.getValue()); } + /** + * 为{@code null}则写,否则忽略。如果覆盖,则不判断直接写 + */ + @Test + public void issues2484Test() { + final A a = new A(); + a.setValue("abc"); + final B b = new B(); + b.setValue("123"); + + BeanCopier copier = BeanCopier.create(a, b, CopyOptions.create().setOverride(false)); + copier.copy(); + Assert.assertEquals("123", b.getValue()); + + b.setValue(null); + copier = BeanCopier.create(a, b, CopyOptions.create().setOverride(false)); + copier.copy(); + Assert.assertEquals("abc", b.getValue()); + } + @Data private static class A { private String value;