java实体类对象与map互转的方法

/**
	 * 将对象转成map
	 * @param object
	 * @return
	 * @throws Exception
	 */
	public static Map<String, Object> beanToMap(Object object) throws Exception
	{
		Map<String, Object> map = new HashMap<String, Object>();
		Field[] fields = object.getClass().getDeclaredFields();
		for (Field field : fields)
		{
			field.setAccessible(true);
			map.put(field.getName(), field.get(object));
		}
		return map;
	}

	/**
	 * map转对象
	 * @param <T>
	 * @param map
	 * @param beanClass
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("rawtypes")
	public static <T> T mapToBean(Map map, Class<T> beanClass) throws Exception
	{
		T object = beanClass.newInstance();
		Field[] fields = object.getClass().getDeclaredFields();
		for (Field field : fields)
		{
			int mod = field.getModifiers();
			if (Modifier.isStatic(mod) || Modifier.isFinal(mod))
			{
				continue;
			}
			field.setAccessible(true);
			if (map.containsKey(field.getName()))
			{
				field.set(object, map.get(field.getName()));
			}
		}
		return object;
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,实体 Map 的过程通常涉及创建一个映射功能,将实体类的属性映射到 Map 的键值对中。以下是实现这一过程的一种典型步骤: ### 步骤一:确认实体类结构 首先,你需要有清晰的实体类结构。实体类通常包含一些私有的字段(如 `id`, `name`, `email` 等),以及对应的 getter 和 setter 方法。 ```java public class User { private int id; private String name; private String email; // 构造函数、getter 和setter... } ``` ### 步骤二:创建方法 接着,编写一个方法实体换为 Map 对象。这个方法需要遍历实体类的所有属性,并将它们对应地放入 Map 中。 ```java import java.util.HashMap; import java.util.Map; public class EntityConverter { public static <T> Map<String, Object> entityToMap(T entity) { if (entity == null) return new HashMap<>(); Class<?> clazz = entity.getClass(); Map<String, Object> map = new HashMap<>(); for (java.lang.reflect.Field field : clazz.getDeclaredFields()) { try { field.setAccessible(true); String fieldName = field.getName(); Object fieldValue = field.get(entity); if (fieldValue != null) { map.put(fieldName, fieldValue); } } catch (IllegalAccessException e) { throw new RuntimeException("Failed to access field " + field.getName(), e); } } return map; } } // 使用示例 User user = new User(1, "Alice", "alice@example.com"); Map<String, Object> userMap = EntityConverter.entityToMap(user); ``` ### 相关问题: 1. **如何处理 Map 中的 null 值**? 这里可以考虑将所有为 null 的值替换为特定标记(如 `null` 字符串)或者直接排除 null 值。 2. **是否需要保持字段的原始顺序**? 可以通过添加额外的数据结构存储字段名和索引来保持顺序,但这会增加实现复杂度。 3. **对于嵌套实体类的处理**? 如果实体类中有其他实体类作为属性,则需要递归调用相同的方法来处理嵌套的实体类。 --- 这种方法提供了一种基础的实体类到 Map换方式。根据具体应用的需求,可能还需要进行更复杂的定制化处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值