`

使用反射将对象转Map

    博客分类:
  • java
阅读更多

 

//使用反射将对象转Map<String, String>
public class Object2Map {

 public static void main(String[] args) throws Exception{
  User user = new User();
  user.setName("zhangsan");
  user.setAge(20);
  user.setBirthday(new Date());
  
  Map<String, String> map = new HashMap<String, String>();
  Field[] fields = user.getClass().getDeclaredFields();
  for(Field f: fields){
//   System.out.println(f.getType()+f.getClass().getName());
   //对日期类型格式化
   if(f.getType().equals(java.util.Date.class)){
    Object dobj = getValue(user, f.getName());
    /*
    long time = ((Date)dobj).getTime();
    String val = new Date(time){
     public String toString(){
      return (this.getYear()+ 1900)+"-" + (this.getMonth() + 1) + "-" + this.getDate();
     }
    }.toString();
    */
    String val = date2str((Date)dobj);
    map.put(f.getName(), val);
    continue;
   }
   map.put(f.getName(), getValue(user, f.getName()).toString());
  }
  
  Set<Entry<String, String>> set = map.entrySet();
  for(Entry<String, String> e: set){
   System.out.println(e.getKey()+", "+ e.getValue());
  }
  
  
  
 }
 
 static Object getValue(Object o,String fieldName)throws Exception{
  String getMethod = "get" + Character.toUpperCase(fieldName.charAt(0))
   + fieldName.substring(1);
  Method m= o.getClass().getMethod(getMethod, new Class[]{});
  return m.invoke(o, new Object[]{});
 }
 
 static String date2str(Date d){
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  return df.format(d);
 }

 static class User{
  private String name;
  private Integer age;
  private Date birthday;
  
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public Integer getAge() {
   return age;
  }
  public void setAge(Integer age) {
   this.age = age;
  }
  public Date getBirthday() {
   return birthday;
  }
  public void setBirthday(Date birthday) {
   this.birthday = birthday;
  }
 }
 
}

分享到:
评论

相关推荐

    使用Java反射机制将Map转换为Java对象,支持Boolean、Date类型

    在本主题中,我们将深入探讨如何使用Java反射机制将Map转换为Java对象,同时支持Boolean和Date类型的数据。这种转换在处理JSON到对象的映射或者数据库查询结果到对象的映射时非常有用。 首先,我们需要了解Java中的...

    将Map转换成Java实体

    总结起来,将Map转换为Java实体对象是Java开发中常见的需求,我们可以利用Core Java JDK 1.8的泛型和反射来实现这一功能。通过创建一个通用的工具类,我们可以简化代码并提高代码复用性。在使用过程中,需要注意处理...

    利用反射实现对象转json格式字符串

    本文将深入探讨如何使用反射技术将对象转换为JSON格式的字符串。我们将以一个名为`JsonUtils`的Java类为例,该类可能包含实现此功能的方法。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的...

    java Pojo转Map

    在这个工具类中,我们使用反射API来获取Pojo类的所有字段,然后将这些字段的名称作为Map的键,字段的值作为对应的值。注意,这个方法只处理当前类的字段,如果Pojo类中有嵌套的其他Pojo对象,它们不会被自动展开。若...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    对象转换成JSON和Map

    - **对象转Map方法**:Java没有内置的方法直接将对象转换为Map,但我们可以手动实现。这通常涉及遍历对象的属性并创建对应的键值对。也可以使用第三方库如Dozer或ModelMapper来简化这个过程。 - **自定义转换**:...

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    java Map转换成bean,利用java反射以及java和bean包

    在这个示例中,`mapToBean`方法接受一个Map和目标Bean的Class对象,首先检查参数是否有效,然后创建一个新的Bean实例,遍历Map中的每一个键值对,通过反射找到Bean中对应的Field,设置其可访问,最后调用`set()`方法...

    POJO转Map.txt

    POJO转Map的基本思路是利用反射机制获取POJO的所有属性,并将其存储到Map中。具体步骤如下: 1. **判断对象是否为空**:首先检查传入的对象是否为空,如果为空则直接返回null。 2. **创建Map实例**:使用`new ...

    MapUtils工具类,轻松转换map数据与实体类

    通常,该类会使用反射机制遍历`Map`中的每个键值对,根据键来找到对应实体类的setter方法,并调用它设置值。为了确保安全,工具类可能还会包含一些错误处理机制,如检查键是否存在,值类型是否匹配等。 在实际开发...

    Java Bean对象和Map相互转换.zip

    使用Fastjson,我们可以非常简单地将一个Java Bean对象转换为Map。以下是一个示例: ```java import com.alibaba.fastjson.JSON; import java.util.Map; public class BeanToJsonMap { public static void ...

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

    MapStruct是一种高效的对象映射框架,它通过注解处理器自动生成类型安全、高性能且无依赖的JavaBean映射代码。在Java开发中,JavaBean之间的转换通常是一个繁琐的任务,尤其是在大型项目中,大量的转换代码不仅影响...

    java对象转对象插件

    "java对象转对象插件"旨在简化这个过程,提供了一种便捷的方式来将Java对象转换为Map、List、Set或其他对象,提高了开发效率。下面将详细介绍这个插件的工作原理、使用方法及其优势。 首先,Java对象到Map的转换是...

    java bean和map之间的互转

    在实际开发中,我们常常需要将Java Bean对象与Map对象之间进行转换,以便于数据的处理和传输。以下将详细介绍如何实现这种转换。 首先,让我们了解一下Java Bean。Java Bean是一种符合JavaBeans规范的Java类,它...

    java反射实现Object转json

    对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    java中实现map与对象相互转换的几种实现

    在使用该方法进行Java对象转Map时,可能会发生以下错误: `Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer` 该错误是由于commons-collections.jar包...

    各种转换,xml,实体bean,动态bean,map等

    在实际应用中,比如“动态bean转换”,可能指的是将动态生成的bean对象转换为其他格式,如XML字符串或Map,以便进一步处理或存储。同时,“entryBean”可能是一个特定的Java Bean,用于封装Map的键值对,提供更面向...

    map与Javabean相互转换实例

    本文将深入探讨如何通过反射机制实现`Map`和`JavaBean`的相互转换。 首先,我们要理解`JavaBean`的基本概念。`JavaBean`是符合JavaBeans规范的类,它通常具有公共的无参构造器、getter和setter方法以及私有的属性,...

    Map和Bean灵活转换工具类

    例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是对应的属性值,我们可以使用`MapUtils`将这个Map转换为一个User对象,以便更方便地操作和管理这些数据。 另一方面,`BeanUtils`类则是...

    Desktop_javaBean转换Map工具_

    在Java中,将JavaBean转换为Map的基本步骤是遍历JavaBean的所有属性,通过反射获取其getter方法,然后将属性名和对应的属性值放入Map中。以下是一个简单的示例: ```java import java.beans.Introspector; import ...

Global site tag (gtag.js) - Google Analytics