利用反射将Map转成JavaBean(属性值均为private,且包含Long类型属性)
来源:互联网 发布:上海嵌入式软件开发 编辑:程序博客网 时间:2024/06/05 22:49
1.实体类(所有属性均为private,且存在Long类型)
public class Test { private String name; private Long id; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
2.转换方法:
/** * 将Map转换为JavaBean对象 * @param c class对象 * @param map * @return * @throws IllegalAccessException * @throws InstantiationException */ public static Object convertMap(Class c,Map<String,Object> map) throws IllegalAccessException, InstantiationException { Object o = c.newInstance(); Field[] fileds = c.getDeclaredFields(); for(Field field : fileds){ //取消默认 Java 语言访问控制检查的能力 即允许对private属性进行直接赋值或获取 field.setAccessible(true); if(field.getType() == Long.class){//Long类型需手动转换,否则报类型转换出错 field.set(o,((Integer)map.get(field.getName())).longValue()); }else{ field.set(o,map.get(field.getName())); } } return o; }
3.测试方法:
public static void main(String[] args) { Map<String,Object> map = new HashMap<>(); map.put("name","张三"); map.put("age",23); map.put("id",1231); try { convertMap(Test.class,map); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } }
亲测可用,菜鸟一名,对人家写好的代码出错不知道从何下手,只好重写。。。。
阅读全文
0 0
- 利用反射将Map转成JavaBean(属性值均为private,且包含Long类型属性)
- 反射技术将POJO对象(属性和属性值)转成Map
- Java 用反射将JavaBean转成Map
- 为什么需要将类中的属性定义为private类型
- 利用反射获取与修改private的属性的值
- 利用Java反射快速封装JavaBean属性
- 利用反射,得到javaBean中的属性名
- JavaBean属性方法反射
- 将一个类的属性存入MAP中(key为属性名,value为属性值)
- 将JavaBean对象的全部属性(包括父类属性)存放于map中的方法
- 利用Java反射机制将Bean转成Map
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用反射机制 实现 javabean 转化为 map
- java反射调用private方法,获取修改private属性值
- 利用反射动态创建控件,且修改其属性
- python正则表达式(3)
- ubuntu16.04下使用自带Remmina控制别的ubuntu机器的方法
- C#解析json
- String的常用方法演示
- Intellij IDEA 代码格式化与eclipse保持风格一致
- 利用反射将Map转成JavaBean(属性值均为private,且包含Long类型属性)
- 我的第一个Swift程序 Hello World
- //输入不同对象的姓名、性别、年龄、体重和住址等信息,并输出显示。
- JSP中四种会话跟踪技术(四大作用域)
- 工作流调度框架Oozie
- springboot 整合generator代码生成工具 使用swagger展示接口 使用pagehelper做分页
- ES6-正则的扩展-具名组匹配
- luogu 1072
- 11-01