java基于反射的Map转Bean的工具类
来源:互联网 发布:从新网代理商转出域名 编辑:程序博客网 时间:2024/05/05 03:10
01
import
java.beans.BeanInfo;
02
import
java.beans.IntrospectionException;
03
import
java.beans.Introspector;
04
import
java.beans.PropertyDescriptor;
05
import
java.lang.reflect.InvocationTargetException;
06
import
java.lang.reflect.Method;
07
import
java.sql.Timestamp;
08
import
java.util.Date;
09
import
java.util.Map;
10
11
/**
12
*
13
* @ClassName: Transformation
14
* @Description: 数据类型转换
15
*
16
* @author yangtao
17
* @since 2016年10月19日 上午11:36:33
18
*
19
*/
20
public
class
Transformation {
21
22
/**
23
*
24
* @Title: setMethodValue
25
* @Description: 调用object的set方法,对obj的属性赋值
26
*
27
* @author yangtao
28
* @since 2016年10月19日 上午11:37:35
29
*
30
* @param obj
31
* @param method
32
* @param objects
33
* @throws IllegalAccessException
34
* @throws IllegalArgumentException
35
* @throws InvocationTargetException void
36
*/
37
private
static
void
setMethodValue(Object obj, Method method, Object objects)
throws
IllegalAccessException, IllegalArgumentException, InvocationTargetException {
38
if
(Timestamp.
class
.getName().equals(method.getParameterTypes()[
0
].getName())) {
39
if
(
null
!= objects && !
"null"
.equals(objects)) {
40
method.invoke(obj,
new
Timestamp((
long
) objects));
41
}
42
}
else
if
(Date.
class
.getName().equals(method.getParameterTypes()[
0
].getName())) {
43
if
(
null
!= objects && !
"null"
.equals(objects)) {
44
method.invoke(obj,
new
Timestamp((
long
) objects));
45
}
46
}
else
if
(java.sql.Date.
class
.getName().equals(method.getParameterTypes()[
0
].getName())) {
47
if
(
null
!= objects && !
"null"
.equals(objects)) {
48
method.invoke(obj,
new
Timestamp((
long
) objects));
49
}
50
}
else
{
51
method.invoke(obj, objects);
52
}
53
}
54
55
/**
56
*
57
* @Title: convertMap
58
* @Description: 将一个 Map 对象转化为一个 JavaBean
59
*
60
* @author yangtao
61
* @since 2016年10月19日 上午11:37:24
62
*
63
* @param type
64
* @param map
65
* @return
66
* @throws IntrospectionException
67
* @throws IllegalAccessException
68
* @throws InstantiationException
69
* @throws InvocationTargetException T
70
*/
71
@SuppressWarnings
(
"rawtypes"
)
72
public
static
<T> T convertMap(Class<T> type, Map map)
throws
IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException {
73
BeanInfo beanInfo = Introspector.getBeanInfo(type);
// 获取类属性
74
T instance = type.newInstance();
// 创建 JavaBean 对象
75
76
// 给 JavaBean 对象的属性赋值
77
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
78
for
(
int
i =
0
; i < propertyDescriptors.length; i++) {
79
PropertyDescriptor descriptor = propertyDescriptors[i];
80
String propertyName = descriptor.getName();
81
82
if
(map.containsKey(propertyName)) {
83
// 下面的 try起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。
84
Object value = map.get(propertyName);
85
86
Object[] args =
new
Object[
1
];
87
args[
0
] = value;
88
89
setMethodValue(instance, descriptor.getWriteMethod(), value);
90
}
91
}
92
return
instance;
93
}
94
}
阅读全文
0 0
- java基于反射的Map转Bean的工具类
- java基于反射的Map转Bean的工具类
- 利用Java的反射机制实现Bean实体与Map自动转换的工具类
- 基于java反射的javabean和map相互转换的工具类
- 基于java反射的javabean和map相互转换的工具类
- 基于反射的工具类
- Java反射实现的Bean拷贝类
- java实现的bean类型和map类型相互转换的工具类
- bean->map或map->bean的工具类主要针对基本类型
- [分享]Java之Bean、Map、Json之间的互相转换工具类
- 通过java的反射机制实现Map、JavaBean、JSON的相互转换工具类
- Map的基本操作工具类-----反射赋值原理
- 基于 Java 的 bean 配置
- 自己写的json转java bean工具类
- 采用CSV Reader, 基于Java Bean和反射的CSV文件读取器
- java bean反射最全的资料
- 10059---java反射实现bean的copy
- java中的bean、list、map和JSON的互转
- Hadoop文件存储系统-HDFS详解以及java编程实现
- Tango+Unity 日志输出
- 1,编写程序,当用户在文本框中输入内容之后,单机不同的按钮,能够把文半框中的内容粘贴到文本区中。“重置”按钮实现将文本框和文本区中的内容清空。界面上的文本区只能显示内容,不能让用户输入文本。运行结果
- Android之ListView多种实现效果
- Android学习日记——安全
- java基于反射的Map转Bean的工具类
- mybatis3--9.缓存
- Multi-Programming-10 Re-entrant Locks
- thinkphp 框架自带配置文件
- PMP学习笔记(四)
- C# 函数与委托
- Java代理机制及动态代理和CGLIB代理详解
- 在U3D中用正则表达式实现FBX文件的自动分割
- java复习之数据类型转换