`

把一个对象转换成Map,使用BeanWrapperImpl

    博客分类:
  • java
 
阅读更多

import org.springframework.beans.BeanWrapperImpl;

public class User {

 private String name;
 private Date birthday;
 private String[] addrs;

 public static void main(String[] args) {
  //测试把一个对象转换成Map
  User user=new User();
  user.setName("张伟");
  user.setBirthday(new Date());
  user.setAddrs(new String[]{"北京","郑州","沈阳","合肥"});
  
  Map userMap=user.toMap();
  /*
  Set set=userMap.entrySet();
  Iterator it=set.iterator();
  while(it.hasNext()){
   System.out.print(it.next());
  }*/
  Set keys=userMap.keySet();
  String key=null;
  for(Object k:keys){
   key=(String)k;
   System.out.println(" key:"+key+"  value:"+userMap.get(key));
  }
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public Date getBirthday() {
  return birthday;
 }

 public void setBirthday(Date birthday) {
  this.birthday = birthday;
 }

 public String[] getAddrs() {
  return addrs;
 }

 public void setAddrs(String[] addrs) {
  this.addrs = addrs;
 }

 public Map toMap() {
  BeanWrapperImpl beanWrapper = new BeanWrapperImpl(this);
  PropertyDescriptor[] alldescriptors = beanWrapper
    .getPropertyDescriptors();

  int length = alldescriptors.length;
  List list = new ArrayList();

  for (int i = 0; i < alldescriptors.length; i++) {
   if (alldescriptors[i].getReadMethod() != null
     && alldescriptors[i].getWriteMethod() != null) {
    list.add(alldescriptors[i]);
    System.out.println(alldescriptors[i].getDisplayName());
   }
  }
  PropertyDescriptor[] descriptors = (PropertyDescriptor[]) list
    .toArray(new PropertyDescriptor[0]);

  System.out.println(descriptors.length + " list.length=" + list.size());

  // toMap
  Map properties = new HashMap(descriptors.length);
  for (int i = 0; i < descriptors.length; i++) {
   String name = descriptors[i].getName();
   properties.put(name, beanWrapper.getPropertyValue(name));
  }
  
  Set keys = properties.keySet();
  String key = null;
  for (Object k : keys) {
   key = (String) k;
   System.out.println("key: " + key + " value:" + properties.get(key));
  }
  return properties;
 }

}

分享到:
评论

相关推荐

    在Java 8中将List转换为Map对象方法

    在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 首先,我们需要明确Map的key是什么?在这...

    对象转换成JSON和Map

    "对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...

    map.toString()后转换成Map类型

    在Java编程中,有时我们需要将一个`Map`对象转换为字符串形式进行存储或传输,而在接收端又需要将该字符串重新转换回`Map`对象以便进一步处理。本篇将详细介绍如何通过特定的方法实现这一过程,并深入分析其实现细节...

    java将xml串转换成Map类型

    将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map

    将Map转换成Java实体

    下面是一个简单的工具类`CollectionTools`的示例代码,它使用泛型和反射实现了Map到实体的转换: ```java import java.lang.reflect.Field; import java.util.Map; public class CollectionTools { /** * 将Map...

    将对象变成map

    将一个对象快捷转换成map 将map在转换成对象 可以直接获取webresult对象中data数据

    详解Go开发Struct转换成map两种方式比较

    在Go语言的开发过程中,经常需要将结构体(Struct)转换为映射(map),尤其是在与数据库交互时,许多ORM框架或数据库操作API会使用map作为参数。本文将介绍两种在Go语言中将Struct转换为map的方法,并对它们进行...

    java转换xml、list、map和json

    该方法首先创建了一个Document对象,然后添加一个node元素,接着遍历Map对象的keySet,生成key元素,并将其添加到node元素中。最后,使用doc2String方法将Document对象转换为xml字符串。 xml和list之间的转换 xml...

    MapStructDemo入门篇

    - 定义Mapper接口:创建一个接口,声明源对象到目标对象的映射方法,使用`@Mapper`注解标记该接口。 - 映射配置:在接口方法上或接口级别使用注解来定义映射规则,如`@Mapping`用于指定属性之间的映射,`@Mapper...

    对象与map互相转换工具类

    对象与map互相转换工具类

    java中将数据库中数据赋值给Map对象源代码

    然后,我们可以创建一个Java类,使用JdbcTemplate执行SQL查询并把结果转换为Map对象。以下是一个简单的示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.spring...

    【java】mapstruct自定义类的转换示例(csdn)————程序.pdf

    在Java开发中,MapStruct是一个非常实用的代码生成库,它简化了对象之间的映射过程,尤其是当对象之间存在复杂的转换逻辑时。本示例主要介绍如何在MapStruct中自定义类转换,以便处理特定的转换需求。我们将通过分析...

    json 转换为map

    `google-gson`库是Google提供的一个Java库,用于将Java对象转换为JSON格式,反之亦然。 在Java中,`java.util.Map`接口是键值对的集合,其中每个键都是唯一的。Gson库提供了一个`Gson.fromJson()`方法,能够将JSON...

    List转换为List

    2. **创建Map对象**:针对List中的每一个Bean对象,创建一个Map实例。通常情况下,Map会使用HashMap实现。 3. **复制属性到Map**:从Bean对象中获取属性值,将这些值放入Map中。键通常是属性名,值是属性值。 4. *...

    用于将map转换成对象的jar包

    这个任务可以通过使用特定的库来简化,例如Apache Commons BeanUtils库,该库包含在"用于将map转换成对象的jar包"中。这个jar包主要包含两个文件:`commons-beanutils-1.8.0.jar`和`commons-logging-1.1.3.jar`。 `...

    MFC,C++,C语言 json转换成std::map源码,无需编译,无需关心引用位置,直接引用即可使用

    使用"MyJson"库时,首先需要包含"MyJson.h"头文件,然后创建`MyJson`对象实例,接着调用相应的成员函数(可能是`parseJson`或类似的函数)传入JSON字符串,函数会返回一个`std::map`对象,键是JSON键,值是对应的...

    json字符串转成 Map/List

    Gson是由Google提供的一个Java库,能够将Java对象转换为JSON字符串,反之亦然。将JSON字符串转化为Map,可以使用`fromJson()`方法: ```java import com.google.gson.Gson; import java.util.Map; String ...

    优雅的对象转换解决方案,为什么更推荐MapStruct呢.docx

    - MapStruct是一个基于注解的工具,它能够自动生成JavaBean之间的映射代码,避免了手动编写转换方法的麻烦,提高了开发效率。 - 作为注解处理器,MapStruct在编译期间生成映射代码,这意味着运行时没有性能损失,...

    解析excel数据转换为Map 支持03和07(xls/xlsx)

    以下是一个基本的步骤来解析Excel数据并转换为Map: 1. **引入Apache POI依赖**:在你的项目中,需要添加Apache POI库的依赖。如果你使用Maven,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.apache...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

Global site tag (gtag.js) - Google Analytics