diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanUtil.java
index 617a574e5..0840bc112 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanUtil.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanUtil.java
@@ -683,6 +683,10 @@ public class BeanUtil {
if (null == clazz) {
return false;
}
+ if(clazz == String.class){
+ // String中有getter方法,但为字符串,不是Bean
+ return false;
+ }
return hasGetter(clazz) || hasPublicField(clazz);
}
diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/convert/ConvertToBeanTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/convert/ConvertToBeanTest.java
index 9f34e94c9..11fc369e0 100644
--- a/hutool-core/src/test/java/org/dromara/hutool/core/convert/ConvertToBeanTest.java
+++ b/hutool-core/src/test/java/org/dromara/hutool/core/convert/ConvertToBeanTest.java
@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
/**
* 类型转换工具单元测试
* 转换为数组
@@ -44,9 +46,9 @@ public class ConvertToBeanTest {
person.setSubName("sub名字");
final Map, ?> map = ConvertUtil.convert(Map.class, person);
- Assertions.assertEquals(map.get("name"), "测试A11");
- Assertions.assertEquals(map.get("age"), 14);
- Assertions.assertEquals("11213232", map.get("openid"));
+ assertEquals(map.get("name"), "测试A11");
+ assertEquals(map.get("age"), 14);
+ assertEquals("11213232", map.get("openid"));
}
@Test
@@ -58,15 +60,15 @@ public class ConvertToBeanTest {
person.setSubName("sub名字");
final Map map = ConvertUtil.toMap(String.class, String.class, person);
- Assertions.assertEquals("测试A11", map.get("name"));
- Assertions.assertEquals("14", map.get("age"));
- Assertions.assertEquals("11213232", map.get("openid"));
+ assertEquals("测试A11", map.get("name"));
+ assertEquals("14", map.get("age"));
+ assertEquals("11213232", map.get("openid"));
final LinkedHashMap map2 = ConvertUtil.convert(
new TypeReference>() {}, person);
- Assertions.assertEquals("测试A11", map2.get("name"));
- Assertions.assertEquals("14", map2.get("age"));
- Assertions.assertEquals("11213232", map2.get("openid"));
+ assertEquals("测试A11", map2.get("name"));
+ assertEquals("14", map2.get("age"));
+ assertEquals("11213232", map2.get("openid"));
}
@Test
@@ -79,10 +81,10 @@ public class ConvertToBeanTest {
final Map map2 = ConvertUtil.toMap(String.class, String.class, map1);
- Assertions.assertEquals("1", map2.get("key1"));
- Assertions.assertEquals("2", map2.get("key2"));
- Assertions.assertEquals("3", map2.get("key3"));
- Assertions.assertEquals("4", map2.get("key4"));
+ assertEquals("1", map2.get("key1"));
+ assertEquals("2", map2.get("key2"));
+ assertEquals("3", map2.get("key3"));
+ assertEquals("4", map2.get("key4"));
}
@Test
@@ -95,11 +97,11 @@ public class ConvertToBeanTest {
map.put("subName", "sub名字");
final SubPerson subPerson = ConvertUtil.convert(SubPerson.class, map);
- Assertions.assertEquals("88dc4b28-91b1-4a1a-bab5-444b795c7ecd", subPerson.getId().toString());
- Assertions.assertEquals(14, subPerson.getAge());
- Assertions.assertEquals("11213232", subPerson.getOpenid());
- Assertions.assertEquals("测试A11", subPerson.getName());
- Assertions.assertEquals("11213232", subPerson.getOpenid());
+ assertEquals("88dc4b28-91b1-4a1a-bab5-444b795c7ecd", subPerson.getId().toString());
+ assertEquals(14, subPerson.getAge());
+ assertEquals("11213232", subPerson.getOpenid());
+ assertEquals("测试A11", subPerson.getName());
+ assertEquals("11213232", subPerson.getOpenid());
}
@Test
@@ -116,10 +118,10 @@ public class ConvertToBeanTest {
caseInsensitiveMap.put("Jerry", 2);
caseInsensitiveMap.put("tom", 3);
- Map map = ConvertUtil.toMap(String.class, String.class, caseInsensitiveMap);
- Assertions.assertEquals("2", map.get("jerry"));
- Assertions.assertEquals("2", map.get("Jerry"));
- Assertions.assertEquals("3", map.get("tom"));
+ final Map map = ConvertUtil.toMap(String.class, String.class, caseInsensitiveMap);
+ assertEquals("2", map.get("jerry"));
+ assertEquals("2", map.get("Jerry"));
+ assertEquals("3", map.get("tom"));
}
@Test
public void beanToSpecifyMapTest() {
@@ -129,9 +131,9 @@ public class ConvertToBeanTest {
person.setName("测试A11");
person.setSubName("sub名字");
- Map map = ConvertUtil.toMap(LinkedHashMap.class, String.class, String.class, person);
- Assertions.assertEquals("测试A11", map.get("name"));
- Assertions.assertEquals("14", map.get("age"));
- Assertions.assertEquals("11213232", map.get("openid"));
+ final Map map = ConvertUtil.toMap(LinkedHashMap.class, String.class, String.class, person);
+ assertEquals("测试A11", map.get("name"));
+ assertEquals("14", map.get("age"));
+ assertEquals("11213232", map.get("openid"));
}
}