//使用反射将对象转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类型的数据。这种转换在处理JSON到对象的映射或者数据库查询结果到对象的映射时非常有用。 首先,我们需要了解Java中的...
总结起来,将Map转换为Java实体对象是Java开发中常见的需求,我们可以利用Core Java JDK 1.8的泛型和反射来实现这一功能。通过创建一个通用的工具类,我们可以简化代码并提高代码复用性。在使用过程中,需要注意处理...
本文将深入探讨如何使用反射技术将对象转换为JSON格式的字符串。我们将以一个名为`JsonUtils`的Java类为例,该类可能包含实现此功能的方法。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的...
在这个工具类中,我们使用反射API来获取Pojo类的所有字段,然后将这些字段的名称作为Map的键,字段的值作为对应的值。注意,这个方法只处理当前类的字段,如果Pojo类中有嵌套的其他Pojo对象,它们不会被自动展开。若...
在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...
- **对象转Map方法**:Java没有内置的方法直接将对象转换为Map,但我们可以手动实现。这通常涉及遍历对象的属性并创建对应的键值对。也可以使用第三方库如Dozer或ModelMapper来简化这个过程。 - **自定义转换**:...
在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...
在这个示例中,`mapToBean`方法接受一个Map和目标Bean的Class对象,首先检查参数是否有效,然后创建一个新的Bean实例,遍历Map中的每一个键值对,通过反射找到Bean中对应的Field,设置其可访问,最后调用`set()`方法...
POJO转Map的基本思路是利用反射机制获取POJO的所有属性,并将其存储到Map中。具体步骤如下: 1. **判断对象是否为空**:首先检查传入的对象是否为空,如果为空则直接返回null。 2. **创建Map实例**:使用`new ...
通常,该类会使用反射机制遍历`Map`中的每个键值对,根据键来找到对应实体类的setter方法,并调用它设置值。为了确保安全,工具类可能还会包含一些错误处理机制,如检查键是否存在,值类型是否匹配等。 在实际开发...
使用Fastjson,我们可以非常简单地将一个Java Bean对象转换为Map。以下是一个示例: ```java import com.alibaba.fastjson.JSON; import java.util.Map; public class BeanToJsonMap { public static void ...
MapStruct是一种高效的对象映射框架,它通过注解处理器自动生成类型安全、高性能且无依赖的JavaBean映射代码。在Java开发中,JavaBean之间的转换通常是一个繁琐的任务,尤其是在大型项目中,大量的转换代码不仅影响...
"java对象转对象插件"旨在简化这个过程,提供了一种便捷的方式来将Java对象转换为Map、List、Set或其他对象,提高了开发效率。下面将详细介绍这个插件的工作原理、使用方法及其优势。 首先,Java对象到Map的转换是...
在实际开发中,我们常常需要将Java Bean对象与Map对象之间进行转换,以便于数据的处理和传输。以下将详细介绍如何实现这种转换。 首先,让我们了解一下Java Bean。Java Bean是一种符合JavaBeans规范的Java类,它...
对于"java反射实现Object转json"这个主题,我们将深入探讨如何使用反射机制将Java对象转换为JSON格式的数据。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
在实际应用中,比如“动态bean转换”,可能指的是将动态生成的bean对象转换为其他格式,如XML字符串或Map,以便进一步处理或存储。同时,“entryBean”可能是一个特定的Java Bean,用于封装Map的键值对,提供更面向...
本文将深入探讨如何通过反射机制实现`Map`和`JavaBean`的相互转换。 首先,我们要理解`JavaBean`的基本概念。`JavaBean`是符合JavaBeans规范的类,它通常具有公共的无参构造器、getter和setter方法以及私有的属性,...
例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是对应的属性值,我们可以使用`MapUtils`将这个Map转换为一个User对象,以便更方便地操作和管理这些数据。 另一方面,`BeanUtils`类则是...
在Java中,将JavaBean转换为Map的基本步骤是遍历JavaBean的所有属性,通过反射获取其getter方法,然后将属性名和对应的属性值放入Map中。以下是一个简单的示例: ```java import java.beans.Introspector; import ...
在使用该方法进行Java对象转Map时,可能会发生以下错误: `Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer` 该错误是由于commons-collections.jar包...