java实体对象与Map之间的转换工具类代码实例

网友投稿 406 2022-12-18


java实体对象与Map之间的转换工具类代码实例

这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Map接口中键和值一一映射. 可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。

当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.

当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。

当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。

当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。

代码如下

import java.lang.reflect.Field;

import java.util.HashMap;

import java.util.Map;

public class EntityUtils {

/**

* 实体类转Map

* @param object

* @return

*/

public static Map entityToMap(Object object) {

Map map = new HashMap();

for (Field field : object.getClass().getDeclaredFields()){

try {

boolean flag = field.isAccessible();

field.setAccessible(true);

Object o = field.get(object);

map.put(field.getName(), o);

field.setAccessible(flag);

} catch (Exception e) {

e.printStackTrace();

}

}

return map;

}

/**

* Map转实体类

* @param map 需要初始化的数据,key字段必须与实体类的成员名字一样,否则赋值为空

* @param entity 需要转化成的实体类

* @return

*/

public static T mapToEntity(Map map, Class entity) {

T t = null;

try {

t = entity.newInstance();

for(Field field : entity.getDeclaredFields()) {

if (map.containsKey(field.getName())) {

boolean flag = field.isAccessible();

field.sehttp://tAccessible(true);

Object object = map.get(field.getName());

if (object!= null && field.getType().isAssignableFrom(object.getClass())) {

field.set(t, object);

}

field.setAccessible(flag);

}

}

return t;

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return t;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring实战之使用@POSTConstruct和@PreDestroy定制生命周期行为操作示例
下一篇:SpringCloud融入Python的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~