mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
测试在非覆盖模式下,来源对象值为null则不覆盖
This commit is contained in:
parent
a38e3e52af
commit
348b0652b6
@ -292,7 +292,7 @@ public class CopyOptions implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,非{@code null}则写,否则忽略。如果覆盖,则不判断直接写
|
* 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,为{@code null}则写,否则忽略。如果覆盖,则不判断直接写
|
||||||
*
|
*
|
||||||
* @param override 是否覆盖目标值
|
* @param override 是否覆盖目标值
|
||||||
* @return this
|
* @return this
|
||||||
|
@ -55,6 +55,26 @@ public class BeanCopierTest {
|
|||||||
Assert.assertEquals("123", b.getValue());
|
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
|
@Data
|
||||||
private static class A {
|
private static class A {
|
||||||
private String value;
|
private String value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user