java项目中映射与对象如何实现相互转换

  介绍

本篇文章给大家分享的是有关java项目中映射与对象如何实现相互转换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> java映射转对象与对象转地图

<强> 1,定义一个实体类:

包反映;
  
  公开课用户{
  
  私人字符串名称;
  
  私人int年龄;
  
  公共字符串getName () {
  返回名称;
  }
  
  公共空间setName(字符串名称){
  this.name=名称;
  }
  
  公共int getAge () {
  返回年龄;
  }
  
  公共空间setAge (int年龄){
  这一点。年龄=年龄;
  }
  }

<强> 2,地图转对象转换如下:

包反映;
  
  进口java.beans.BeanInfo;
  进口java.beans.Introspector;
  进口java.beans.PropertyDescriptor;
  进口java.lang.reflect.Method;
  进口java.util.HashMap;
  进口java.util.Map;
  
  公开课testMapToObject {
  
  公共静态void main (String [] args) {//假设有一个地图存放了一个对象的姓名和年龄
  object> Map<字符串;地图=new HashMap<字符串,object> ();
  map.put (“name",“Kobi");
  map.put (“age", 39岁);
  
  用户用户=transferMapToUser(地图,User.class);
  
  System.out.println (user.getName ());
  System.out.println (user.getAge ());
  }
  
  公共静态& lt; t>T transferMapToUser (Map<字符串,object>地图,ClassclassT) {
  尝试{
  返回转移(地图,classT.newInstance ());
  }捕捉(InstantiationException ex) {
  System.out.println (“fuck& # 63;“);
  }捕捉(IllegalAccessException ex) {
  System.out.println (“fuck& # 63;“);
  }
  返回null;
  }
  
  公共静态& lt; t>T转移(Map<字符串,object>地图,对象obj) {
  
  尝试{
  BeanInfo BeanInfo=Introspector.getBeanInfo (obj.getClass ());
  PropertyDescriptor [] propertyDescriptors=beanInfo.getPropertyDescriptors ();
  
  (PropertyDescriptor属性:propertyDescriptors) {
  字符串键=property.getName ();
  如果(map.containsKey(关键)){
  对象价值=https://www.yisu.com/zixun/map.get(关键);//得到属性对应的setter方法
  setter方法=property.getWriteMethod ();
  尝试{
  setter。调用(obj,价值);
  }捕捉(IllegalArgumentException ex) {
  system . out。println(“什么他妈的# 63;”);
  }
  }
  }
  }捕捉(例外的前女友){
  system . out。println(“什么他妈的# 63;”);
  }
  
  返回(T) obj;
  }
  
  }

运行结果:

运行:   科比·   39   成功构建(总时间:0秒)

<强> 3,对象转地图:

包反映;
  
  进口java.beans.BeanInfo;
  进口java.beans.Introspector;
  进口java.beans.PropertyDescriptor;
  进口java.lang.reflect.Method;
  进口java.util.Map;
  进口java.util.TreeMap;
  
  公开课testObjectToMap {
  
  公共静态void main (String [] args) {
  用户用户=新用户();
  user.setName (“Kobi");
  user.setAge (39);
  
  Map<字符串、对象=?“在地图=transBean2Map(用户);
  System.out.println(地图);
  
  }
  
  公共静态Map<字符串、对象=?“在transBean2Map(对象obj) {
  
  如果(obj==null) {
  返回null;
  }
  TreeMap<字符串、对象=?“在地图=new TreeMap<在();
  尝试{
  BeanInfo BeanInfo=Introspector.getBeanInfo (obj.getClass ());
  PropertyDescriptor [] propertyDescriptors=beanInfo.getPropertyDescriptors ();
  (PropertyDescriptor属性:propertyDescriptors) {
  字符串键=property.getName ();//过滤类属性
  如果(key.equals (“class")) {
  继续;
  }//得到属性对应的getter方法
  getter方法=property.getReadMethod ();
  对象价值=https://www.yisu.com/zixun/getter.invoke (obj);
  
  地图。put(关键字,值);
  }
  }捕捉(异常e) {
  system . out。println (“transBean2Map错误”+ e);
  }
  返回地图;
  }
  }

运行结果:,

运行:   {=39岁name=科比·}   成功构建(总时间:0秒)

以上就是java项目中映射与对象如何实现相互转换,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

java项目中映射与对象如何实现相互转换