写⼀个Map转换成JavaBean的⼯具类⽅法,实现如下mapToObject⽅法(使⽤J。。。
package com.dume.server.face;
import flect.Field;
import flect.Modifier;
import java.util.HashMap;
import java.util.Map;
/**
* 写⼀个Map转换成JavaBean的⼯具类⽅法,实现如下mapToObject⽅法(使⽤Java反射,不允许使⽤第三⽅类库)
*
* public static <T> T mapToObject(Map<String, Object> map, Class<T> beanClass){
*
* }
*/
public class MapToObject {
public static Object maptoobject(Map<String, Object> map, Class<?> beanClass){
if(map == null){
return null;
}
Object object = null;
try{
object = wInstance();
/**
* 获取所有字段属性,不包括⽗类的
*/
Field[] fields = Class().getDeclaredFields();
for(Field field : fields){
//获取属性类型
int mod = Modifiers();
//判断不能是静态和Final属性
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}
//作⽤就是让我们在⽤反射时访问私有变量
field.setAccessible(true);
//将指定对象变量上此 Field 对象表⽰的字段设置为指定的新值.
field.set((Name()));
}
}catch (Exception e){
e.printStackTrace();
}
return object;
}
static class Student{
private String name ;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
object topublic int getAge() {
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap();
map.put("age",20);
map.put("name","xiaoming");
Student student = (Student)maptoobject(map, Student.class);
System.out.String());
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论