javabean(实体类)转Map类型

从网上“風亦飞”的导出EXCEL的源代码提取出来的。认为非常好用。分享一下给大家,主要看beanToMap方法就OK了

  1. /*以下是从poi导出EXCEL的一部分代码,主要将传參数的list转换为map类型,list装载的数据是从数据库取出来的,能够是数组类型,也能够是map类型。也能够是实体类*/
  2. public static TableData createTableData(List list,TableHeaderMetaData headMeta,String[] fields){
  3. TableData td = new TableData(headMeta);
  4. TableDataRow row = null;
  5. if(list != null && list.size()>0){
  6. if(list.get(0).getClass().isArray()){//list为数组类型
  7. for (Object obj : list){
  8. row = new TableDataRow(td);
  9. for(Object o : (Object[])obj){
  10. row.addCell(o);
  11. }
  12. td.addRow(row);
  13. }
  14. }else{//JavaBean或Map类型
  15. for (Object obj : list){
  16. row = new TableDataRow(td);
  17. //推断是//JavaBean(实体类)还是Map类型 。假设是javaBean将调用 obj:beanToMap,转为map类型
  18. Map<String, Object> map = (obj instanceof Map)?
  19. (Map<String, Object>)obj:beanToMap(obj);
  20. for(String key : fields){
  21. row.addCell(map.get(key));
  22. }
  23. td.addRow(row);
  24. }
  25. }
  26. }
  27. return td;
  28. }
  29. //将javabean转为map类型。然后返回一个map类型的值
  30. public static Map<String, Object> beanToMap(Object obj) {
  31. Map<String, Object> params = new HashMap<String, Object>(0);
  32. try {
  33. PropertyUtilsBean propertyUtilsBean = new PropertyUtilsBean();
  34. PropertyDescriptor[] descriptors = propertyUtilsBean.getPropertyDescriptors(obj);
  35. for (int i = 0; i < descriptors.length; i++) {
  36. String name = descriptors[i].getName();
  37. if (!StringUtils.equals(name, "class")) {
  38. params.put(name, propertyUtilsBean.getNestedProperty(obj, name));
  39. }
  40. }
  41. } catch (Exception e) {
  42. e.printStackTrace();
  43. }
  44. return params;
  45. }

javabean(实体类)转Map类型的更多相关文章

  1. javabean实体类对象转为Map类型对象的方法(转发)

    //将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...

  2. java反射遍历实体类属性和类型,并赋值和获取值

    /* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...

  3. java中遍历实体类属性和类型

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  4. java中遍历实体类属性和类型,属性值

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  5. Java 中 Map与JavaBean实体类之间的相互转化

    /** * 将一个 JavaBean 对象转化为一个  Map * @param bean 要转化的JavaBean 对象 * @return 转化出来的  Map 对象 * @throws Intr ...

  6. 数据库字段和实体类和map中对应类型

    http://blog.csdn.net/sxe18652071425/article/details/46416217 地址 MySQL数据类型 JAVA数据类型 JDBC TYPE 普通变量类型 ...

  7. Java实体类的属性类型与数据库表字段类型对应表

    原文地址:https://blog.csdn.net/lyhjava/article/details/50562786 Java中的数据类型和SQL中的数据类型有很多不一样,需要仔细区分,不然易在开发 ...

  8. Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  9. 关于hibernate的实体类中有集合类型转化成JSON的工具类 - 怀念今天的专栏 - 博客频道

    Json 来源:http://blog.csdn.net/zczzsq/article/details/18697045#1536434-hi-1-4387-42d97150898b1af15ddaa ...

  10. 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以

    通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...

随机推荐

  1. 安卓出现Invalid layout of java.lang.String at value

    Project->Properties->Run/Debug setting->选择类->classpath->删除Bootstrap Entries下面的文件 参考

  2. CentOS7 install apache

    1. yum install httpd 2. config /etc/httpd/conf/httpd.conf <VirtualHost *:80>  ServerName www.l ...

  3. IDEA编译时出现"cannot resolve symbol"的问题时的解决方法。

    IDEA编译时出现cannot resolve symbol的报错时,(老表的问题出现在另一台电脑上,所以现在没办法给大家截图报错时的图,今天是周末没用那台电脑,突然想起来就想把它写下来,抱歉抱歉!! ...

  4. MySQL更改了my.ini的#Path to the database root后,数据还写到原来的文件夹

    重新启动数据库 http://www.cnblogs.com/argenbarbie/p/4090494.html

  5. 【转】json与jsonp区别浅析(json才是目的,jsonp只是手段)

    一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展 ...

  6. ES 分布式搜索

    ES整个查询过程是scatter/gather的过程,具体如下: 图见 https://blog.csdn.net/thomas0yang/article/details/78572596?utm_s ...

  7. top k

    def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...

  8. 桥接、nat、host-only

  9. Swift网络封装库Moya中文手册之Authentication

    Authentication 安全验证可能有点复杂,一些网络请求需要认证,这里我们讨论两种常见的. Basic HTTP Auth HTTP auth是HTTP协议自带的用户名/密码验证.如果你使用的 ...

  10. mysql 下载和 安装

    一.下载mysql 1. 在浏览器里打开mysql的官网http://www.mysql.com/ 2. 进入页面顶部的"Downloads" 3. 打开页面底部的“Communi ...