要将 Map 转换为 Java 对象,可以使用 Java 的反射机制。以下是一个示例的实用程序类,用于将 Map 转换为 Java 对象:\n\njava\nimport java.lang.reflect.Field;\nimport java.util.Map;\n\npublic class MapToObjectUtil {\n\n public static <T> T convertMapToObject(Map<String, Object> map, Class<T> clazz) throws IllegalAccessException, InstantiationException {\n T obj = clazz.newInstance();\n\n for (Map.Entry<String, Object> entry : map.entrySet()) {\n String fieldName = entry.getKey();\n Object fieldValue = entry.getValue();\n\n Field field = getField(clazz, fieldName);\n if (field != null) {\n field.setAccessible(true);\n field.set(obj, fieldValue);\n }\n }\n\n return obj;\n }\n\n private static Field getField(Class<?> clazz, String fieldName) {\n Field field = null;\n\n try {\n field = clazz.getDeclaredField(fieldName);\n } catch (NoSuchFieldException e) {\n // Field is not found in the current class, try to find it in the superclass\n Class<?> superClass = clazz.getSuperclass();\n if (superClass != null) {\n field = getField(superClass, fieldName);\n }\n }\n\n return field;\n }\n}\n\n\n使用该实用程序类,可以将 Map 转换为 Java 对象:\n\njava\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class Main {\n\n public static void main(String[] args) throws IllegalAccessException, InstantiationException {\n Map<String, Object> map = new HashMap<>();\n map.put("name", "John");\n map.put("age", 25);\n map.put("isStudent", true);\n\n Person person = MapToObjectUtil.convertMapToObject(map, Person.class);\n System.out.println(person);\n }\n}\n\nclass Person {\n private String name;\n private int age;\n private boolean isStudent;\n\n // getters and setters\n\n @Override\n public String toString() {\n return "Person{" +\n "name='" + name + "'" +\n ", age=" + age +\n ", isStudent=" + isStudent +\n '}';\n }\n}\n\n\n上述示例中,MapToObjectUtil 类提供了一个 convertMapToObject() 方法,用于将 Map 转换为指定的 Java 对象。在 convertMapToObject() 方法中,使用反射获取对象的字段,并将字段值设置为 Map 中对应的值。最后,返回转换后的 Java 对象。 \n\n在 Main 类的 main() 方法中,创建一个 Map 对象,并将键值对添加到 Map 中。然后使用 MapToObjectUtil.convertMapToObject() 方法将 Map 转换为 Person 对象。最后,打印 Person 对象的值。

Java Map 转 Java 对象:实用工具类和示例

原文地址: https://www.cveoy.top/t/topic/pRCg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录