From 1deb32aa29fc9f7134eff4a85f9a46b76e79cea6 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 12 Sep 2023 18:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DCopyOptions.setIgnoreCase?= =?UTF-8?q?=E5=92=8CsetIgnoreProperties=E5=86=B2=E7=AA=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/core/bean/copier/CopyOptions.java | 8 +++- .../hutool/core/bean/IssueI80FP4Test.java | 46 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 hutool-core/src/test/java/org/dromara/hutool/core/bean/IssueI80FP4Test.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java index 0613be6e2..0d2df9fe4 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java @@ -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()); + }); } /** diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/bean/IssueI80FP4Test.java b/hutool-core/src/test/java/org/dromara/hutool/core/bean/IssueI80FP4Test.java new file mode 100644 index 000000000..77a16d74a --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/bean/IssueI80FP4Test.java @@ -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; + } +}