mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-02 11:49:07 +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
|
||||
*/
|
||||
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…
Reference in New Issue
Block a user