From a3f48ccb2937a6f75aefac1de1ca267828ac90a5 Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 12 Mar 2023 13:26:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBeanUtil.hasGetter=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=B7=B3=E8=BF=87getClass=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/core/bean/BeanUtil.java | 7 +++++-- .../src/test/java/cn/hutool/core/bean/BeanUtilTest.java | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c020bb748..5dd8b4115 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 🐞Bug修复 * 【crypto】 修复NoSuchMethodError未捕获问题(issue#2966@Github) * 【poi 】 修复SXSSFWorkbook调用setComment时错位的问题(issue#I6MBS5@Gitee) +* 【core 】 修复BeanUtil.hasGetter没有跳过getClass方法的问题(issue#I6MBS5@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.15 (2023-03-09) diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java index f1918874f..e919ad21c 100755 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java @@ -114,8 +114,11 @@ public class BeanUtil { if (ClassUtil.isNormalClass(clazz)) { for (Method method : clazz.getMethods()) { if (method.getParameterCount() == 0) { - if (method.getName().startsWith("get") || method.getName().startsWith("is")) { - return true; + final String name = method.getName(); + if (name.startsWith("get") || name.startsWith("is")) { + if(false == "getClass".equals(name)){ + return true; + } } } } diff --git a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java index dace87dc1..d8d969aef 100755 --- a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java @@ -918,4 +918,11 @@ public class BeanUtilTest { userEntity.setSex(0); Assert.assertTrue(BeanUtil.isCommonFieldsEqual(userDTO, userEntity, "age", "sex")); } + + @Test + public void hasGetterTest() { + // https://gitee.com/dromara/hutool/issues/I6M7Z7 + final boolean b = BeanUtil.hasGetter(Object.class); + Assert.assertFalse(b); + } }