mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
修复CopyOptions.setIgnoreCase和setIgnoreProperties冲突问题
This commit is contained in:
parent
ead980e246
commit
1deb32aa29
@ -177,7 +177,13 @@ public class CopyOptions implements Serializable {
|
|||||||
* @return CopyOptions
|
* @return CopyOptions
|
||||||
*/
|
*/
|
||||||
public CopyOptions setIgnoreProperties(final String... ignoreProperties) {
|
public CopyOptions setIgnoreProperties(final String... ignoreProperties) {
|
||||||
return setPropertiesFilter((field, o) -> !ArrayUtil.contains(ignoreProperties, field.getName()));
|
return setPropertiesFilter((field, o) -> {
|
||||||
|
if(ignoreCase){
|
||||||
|
// issue#I80FP4
|
||||||
|
return !ArrayUtil.containsIgnoreCase(ignoreProperties, field.getName());
|
||||||
|
}
|
||||||
|
return !ArrayUtil.contains(ignoreProperties, field.getName());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
package org.dromara.hutool.core.bean;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class IssueI80FP4Test {
|
||||||
|
@Test
|
||||||
|
public void copyPropertiesTest() {
|
||||||
|
final Dest sourceDest = new Dest();
|
||||||
|
sourceDest.setCPF(33699);
|
||||||
|
sourceDest.setEnderDest("abc");
|
||||||
|
|
||||||
|
final Dest dest = new Dest();
|
||||||
|
final CopyOptions copyOptions = CopyOptions.of()
|
||||||
|
.setIgnoreNullValue(true)
|
||||||
|
.setIgnoreCase(true)
|
||||||
|
.setIgnoreProperties("enderDest");
|
||||||
|
|
||||||
|
BeanUtil.copyProperties(sourceDest, dest, copyOptions);
|
||||||
|
Assertions.assertNull(dest.getEnderDest());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void copyPropertiesTest2() {
|
||||||
|
final Dest sourceDest = new Dest();
|
||||||
|
sourceDest.setCPF(33699);
|
||||||
|
sourceDest.setEnderDest("abc");
|
||||||
|
|
||||||
|
final Dest dest = new Dest();
|
||||||
|
final CopyOptions copyOptions = CopyOptions.of()
|
||||||
|
.setIgnoreNullValue(true)
|
||||||
|
.setIgnoreCase(true)
|
||||||
|
.setIgnoreProperties("enderdest");
|
||||||
|
|
||||||
|
BeanUtil.copyProperties(sourceDest, dest, copyOptions);
|
||||||
|
Assertions.assertNull(dest.getEnderDest());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
static class Dest{
|
||||||
|
private int cPF;
|
||||||
|
private String enderDest;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user