如何改写嵌套BeanUtils,以处理Bean内嵌套其他Bean的封装问题?

2026-04-16 13:543阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计258个文字,预计阅读时间需要2分钟。

如何改写嵌套BeanUtils,以处理Bean内嵌套其他Bean的封装问题?

javapackage util;

import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import java.util.Map;

/** * 嵌套的BeanUtils * @author 林万程 * @version 2017.10.2.2.30 */

NestedBeanUtils.java

package util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 嵌套的BeanUtils * * @author 林万程 * @version 2017.10.2.2.30 */ public class NestedBeanUtils { /** * 获取单个Bean * @param clazz 需要返回的类名.class * @param map 数据源Map */ public static T get(Class clazz, Map map) throws Exception { T object = clazz.newInstance(); Field[] Fields = clazz.getDeclaredFields(); for (Field field : Fields) { String fieldName = field.getName(); Object value = map.get(fieldName); // 如果找不到就找,封装到子类 if (value == null) { value = get(field.getType(), map); } String mothodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); Method method = clazz.getDeclaredMethod(mothodName, field.getType()); method.invoke(object, value); } return object; } /** * 获取多个Bean * @param clazz 需要返回的类名.class * @param list 数据源Map的List */ public static List list(Class clazz, List > list) throws Exception { List rows = new ArrayList (); for (Map map : list) { rows.add(get(clazz, map)); } return rows; } }

如何改写嵌套BeanUtils,以处理Bean内嵌套其他Bean的封装问题?

本文共计258个文字,预计阅读时间需要2分钟。

如何改写嵌套BeanUtils,以处理Bean内嵌套其他Bean的封装问题?

javapackage util;

import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import java.util.Map;

/** * 嵌套的BeanUtils * @author 林万程 * @version 2017.10.2.2.30 */

NestedBeanUtils.java

package util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 嵌套的BeanUtils * * @author 林万程 * @version 2017.10.2.2.30 */ public class NestedBeanUtils { /** * 获取单个Bean * @param clazz 需要返回的类名.class * @param map 数据源Map */ public static T get(Class clazz, Map map) throws Exception { T object = clazz.newInstance(); Field[] Fields = clazz.getDeclaredFields(); for (Field field : Fields) { String fieldName = field.getName(); Object value = map.get(fieldName); // 如果找不到就找,封装到子类 if (value == null) { value = get(field.getType(), map); } String mothodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); Method method = clazz.getDeclaredMethod(mothodName, field.getType()); method.invoke(object, value); } return object; } /** * 获取多个Bean * @param clazz 需要返回的类名.class * @param list 数据源Map的List */ public static List list(Class clazz, List > list) throws Exception { List rows = new ArrayList (); for (Map map : list) { rows.add(get(clazz, map)); } return rows; } }

如何改写嵌套BeanUtils,以处理Bean内嵌套其他Bean的封装问题?