mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
修复BeanUtil.isBean判断Dict错误问题
This commit is contained in:
parent
99cf24267f
commit
7a6ab19649
@ -2,7 +2,7 @@
|
|||||||
# 🚀Changelog
|
# 🚀Changelog
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
# 5.8.29(2024-06-04)
|
# 5.8.29(2024-06-07)
|
||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【core 】 DateUtil增加offsetYear方法
|
* 【core 】 DateUtil增加offsetYear方法
|
||||||
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【core 】 修复AnnotationUtil可能的空指针错误
|
* 【core 】 修复AnnotationUtil可能的空指针错误
|
||||||
|
* 【core 】 修复BeanUtil.isBean判断Dict错误问题(issue#I9VTZG@gitee)
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
# 5.8.28(2024-05-29)
|
# 5.8.28(2024-05-29)
|
||||||
|
@ -6,6 +6,7 @@ import cn.hutool.core.bean.copier.ValueProvider;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.lang.Dict;
|
||||||
import cn.hutool.core.lang.Editor;
|
import cn.hutool.core.lang.Editor;
|
||||||
import cn.hutool.core.map.CaseInsensitiveMap;
|
import cn.hutool.core.map.CaseInsensitiveMap;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
@ -74,6 +75,14 @@ public class BeanUtil {
|
|||||||
* @since 4.2.2
|
* @since 4.2.2
|
||||||
*/
|
*/
|
||||||
public static boolean hasSetter(Class<?> clazz) {
|
public static boolean hasSetter(Class<?> clazz) {
|
||||||
|
if(null == clazz){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// issue#I9VTZG,排除定义setXXX的预定义类
|
||||||
|
if(Dict.class == clazz){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (ClassUtil.isNormalClass(clazz)) {
|
if (ClassUtil.isNormalClass(clazz)) {
|
||||||
for (Method method : clazz.getMethods()) {
|
for (Method method : clazz.getMethods()) {
|
||||||
if (method.getParameterCount() == 1 && method.getName().startsWith("set")) {
|
if (method.getParameterCount() == 1 && method.getName().startsWith("set")) {
|
||||||
@ -117,6 +126,9 @@ public class BeanUtil {
|
|||||||
* @since 5.1.0
|
* @since 5.1.0
|
||||||
*/
|
*/
|
||||||
public static boolean hasPublicField(Class<?> clazz) {
|
public static boolean hasPublicField(Class<?> clazz) {
|
||||||
|
if(null == clazz){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (ClassUtil.isNormalClass(clazz)) {
|
if (ClassUtil.isNormalClass(clazz)) {
|
||||||
for (Field field : clazz.getFields()) {
|
for (Field field : clazz.getFields()) {
|
||||||
if (ModifierUtil.isPublic(field) && false == ModifierUtil.isStatic(field)) {
|
if (ModifierUtil.isPublic(field) && false == ModifierUtil.isStatic(field)) {
|
||||||
|
@ -5,6 +5,8 @@ import cn.hutool.core.bean.copier.CopyOptions;
|
|||||||
import cn.hutool.core.bean.copier.ValueProvider;
|
import cn.hutool.core.bean.copier.ValueProvider;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
|
import cn.hutool.core.lang.Console;
|
||||||
|
import cn.hutool.core.lang.Dict;
|
||||||
import cn.hutool.core.map.MapBuilder;
|
import cn.hutool.core.map.MapBuilder;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
@ -925,4 +927,10 @@ public class BeanUtilTest {
|
|||||||
final boolean b = BeanUtil.hasGetter(Object.class);
|
final boolean b = BeanUtil.hasGetter(Object.class);
|
||||||
Assert.assertFalse(b);
|
Assert.assertFalse(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void issueI9VTZGTest() {
|
||||||
|
final boolean bean = BeanUtil.isBean(Dict.class);
|
||||||
|
Assert.assertFalse(bean);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user