测试在非覆盖模式下,来源对象值为null则不覆盖

This commit is contained in:
duhanmin 2022-07-28 21:22:00 +08:00
parent a38e3e52af
commit 348b0652b6
2 changed files with 21 additions and 1 deletions

View File

@ -292,7 +292,7 @@ public class CopyOptions implements Serializable {
}
/**
* 设置是否覆盖目标值如果不覆盖会先读取目标对象的值{@code null}则写否则忽略如果覆盖则不判断直接写
* 设置是否覆盖目标值如果不覆盖会先读取目标对象的值{@code null}则写否则忽略如果覆盖则不判断直接写
*
* @param override 是否覆盖目标值
* @return this

View File

@ -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<B> 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;