- 浏览: 419945 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
kaihop:
很好,值得学习
Axis2开发WebService客户端 的3种方式 -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
Java解决Emoji表情符问题 -
hongbai:
不能匹配这个:http://harveyzeng.iteye. ...
正则表达式匹配域名、网址、url -
qwertyuiopqaz:
引用
Axis2开发WebService客户端 的3种方式 -
whj001:
很详细 ,
Axis2开发WebService客户端 的3种方式
直接看代码:
public class ConvertUtil { private static final Logger logger = Logger.getLogger(ConvertUtil.class); /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub OrgResponse resp = new OrgResponse(); resp.setAccountNumber("12346"); resp.setCustomerID("5566"); resp.setPassword("hello1sa"); // Map<String, Object> resultMap = ConvertUtil.convertBeanToMap(resp); // System.out.println("convertSimpleBeanToMap result: "); // for (Entry<String, Object> en : resultMap.entrySet()) { // logger.info(en.getKey() + ": " + en.getValue()); // } // // OrgResponse newRes = convertMapToBean(resultMap, resp); // System.out.println("convertMapToSimpleBean result: "); // logger.info(newRes.getAccountNumber()+", " + newRes.getCustomerID() + ", " // + newRes.getPassword()); } /** * Use Reflection to convert Map to java Bean, Ignore the upper/lower case of attributes letters. * */ public static <T> T convertMapToBean(Map<String, Object> map, T t) { Set<Entry<String, Object>> entrySet = map.entrySet(); for (Entry<String, Object> et : entrySet) { String key = et.getKey().toLowerCase(); // convert to lower case Object value = et.getValue(); List<Method> list = new ArrayList<Method>(); getObjSetMethodsWithExtends(t.getClass(), list); for (int i = 0; i < list.size(); i++) { String name = list.get(i).getName();// method name if (!changeStrToSetMethodNames(key).equalsIgnoreCase(name)) continue; try { list.get(i).invoke(t, value); } catch (Exception e) { logger.error(e.getMessage(), e); } break; } } return t; } /** * Use Reflection to convert java Bean to Map * */ public static <T> Map<String, Object> convertBeanToMap(T t) { Map<String, Object> map = new HashMap<String, Object>(); Class cls = t.getClass(); Field[] fieldlist = cls.getDeclaredFields(); for (int i = 0; i < fieldlist.length; i++) { Field f = fieldlist[i]; String name = f.getName(); Class<?> cs = f.getType(); try { String methodNme = changeStrToGetMethodNames(name); Method meth = null; Method[] mds = cls.getDeclaredMethods(); for (int j = 0; j < mds.length; j++) { if (mds[j].getName().equals(methodNme)) { meth = cls.getMethod(methodNme); Object rtcs = meth.invoke(t, null); map.put(name, rtcs); break; } } if (meth == null) { logger.info("Can not find the method " + methodNme + " in class " + t.getClass().getName()); } } catch (SecurityException e) { logger.error(e.getMessage(), e); } catch (NoSuchMethodException e) { logger.error(e.getMessage(), e); } catch (IllegalArgumentException e) { logger.error(e.getMessage(), e); } catch (IllegalAccessException e) { logger.error(e.getMessage(), e); } catch (InvocationTargetException e) { logger.error(e.getMessage(), e); } } return map; } private static String changeStrToSetMethodNames(String str) { if (str == null || "".equals(str.trim())) return null; char firstChar = str.toCharArray()[0]; String upstr = String.valueOf(firstChar).toUpperCase(); return "set" + upstr + str.substring(1); } private static String changeStrToGetMethodNames(String str) { if (str == null || "".equals(str.trim())) return null; char firstChar = str.toCharArray()[0]; String upstr = String.valueOf(firstChar).toUpperCase(); return "get" + upstr + str.substring(1); } private static void getObjSetMethodsWithExtends(Class<?> cls, List<Method> list) { if (cls.equals(Object.class)) { return; } Method[] mds = cls.getDeclaredMethods(); for (int i = 0; i < mds.length; i++) { if (!mds[i].getName().startsWith("set")) continue; list.add(mds[i]); } getObjSetMethodsWithExtends(cls.getSuperclass(), list); } }
发表评论
-
Spring 定时任务及cron表达式
2017-03-16 10:22 4158转发一篇文章并结合实践记录一下,以后可以参考 Ja ... -
mybatis-generator生成mapper等对象
2017-03-15 15:34 2223参考这篇问题基本就能生成了:http://blog. ... -
Java解决Emoji表情符问题
2016-01-28 17:29 22257问题描述:客户调用 ... -
mybatis 模糊查询%问题
2015-09-28 18:52 4314---------------------------- ... -
常见异常备忘
2015-09-23 17:59 5261. jQuery上传插件Uploadify出现Ht ... -
省市区三级联动实现
2015-06-02 18:11 2265参考文档: 从QQ网站中提取的纯JS省市区三级联动 h ... -
面试题记录4
2015-03-10 18:19 6481. 类加载的顺序(初始化顺序) 类加载的顺 ... -
理解Java移位操作
2014-11-06 12:26 8091. 理解移位操作之前先 ... -
一个排好序的数组,找出两数之和为m的所有组合
2014-09-25 16:20 1223public class Test { ... -
Java String知识点
2014-09-19 11:01 9221. 这段程序的结果是什 ... -
用JAVA导出CSV
2014-07-08 14:00 1320/** * 导出为CVS文件 * ... -
Java面试问题
2014-04-17 17:37 862JAVA 接口和抽象类有 ... -
Java动态执行代码Bsh
2014-02-28 17:42 11375首先要到http://www.beanshell.or ... -
Hibernate错误:org.hibernate.LazyInitializationException: illegal access to loading
2013-09-16 19:16 1459org.hibernate.LazyInitializ ... -
Axis2开发WebService客户端 的3种方式
2013-04-18 18:05 79858第一RPC方式,不生成客户端代码 第二,document ... -
freemarker用字符串构建模版
2013-04-15 16:14 1166代码: import java.io.IOExcep ... -
Java基本类型、包装类以及自定义类判断
2013-02-18 17:48 9280一、基本类型与包装类判断 public class Te ... -
正则表达式匹配域名、网址、url
2013-01-28 18:02 33744DNS规定,域名中的标号都由英文字母和数字组成,每一 ... -
正则表达式基础之——环视 [转]
2013-01-25 09:35 1245环视(Lookaround) 1 环视 ... -
遍历集合时出现的异常Exception in thread "main" java.util.ConcurrentModificationException
2012-08-29 18:11 4838如果这样写的话,就会出现异常 public void ...
相关推荐
在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...
map 和 bean 之间的转换,可以利用反射的原理实现
总之,Java Map到Bean的转换是通过反射和JavaBeans规范实现的,这是Java开发中常用的一种数据转换技巧。理解并熟练运用这些知识,能够帮助我们更高效地处理各种数据结构,提升代码的灵活性。在实际项目中,可以根据...
另一方面,`BeanUtils`类则是用于在Java Bean对象之间进行属性复制,或者将Java Bean转换为Map。这个工具类提供了一系列的方法,如`copyProperties()`,可以将一个Bean的属性值复制到另一个Bean中,实现了对象间的...
转换Java Bean到Map的过程通常是通过反射机制来实现的。以下是一个简单的示例: ```java import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public class BeanToMapConverter { ...
这里,`JSON.toJSONString(myBean)`将Java Bean转换为JSON字符串,然后`JSON.parseObject()`再将其解析成Map。 2. **Fastjson进行Map到Java Bean的转换**: 反过来,我们也可以将Map转换回Java Bean对象: ```...
这种转换对于数据模型间的映射非常有用,例如在业务逻辑层和数据访问层之间,或者在API响应与内部模型之间。 在描述中提到的博文链接中,作者可能详细解释了如何使用BeanMapper进行转换操作。通常,这类库提供了一...
本文将深入探讨如何通过反射机制实现`Map`和`JavaBean`的相互转换。 首先,我们要理解`JavaBean`的基本概念。`JavaBean`是符合JavaBeans规范的类,它通常具有公共的无参构造器、getter和setter方法以及私有的属性,...
在实际应用中,比如“动态bean转换”,可能指的是将动态生成的bean对象转换为其他格式,如XML字符串或Map,以便进一步处理或存储。同时,“entryBean”可能是一个特定的Java Bean,用于封装Map的键值对,提供更面向...
Java 实现 Object 和 Map 之间的转换 3 种方式 Java 中,Object 和 Map 是 two kinds of data types 经常需要相互转换的数据类型。以下将介绍 Java 实现 Object 和 Map 之间的转换的 3 种方式。 方式一:使用 ...
标签 :"java map bean javabean 和 map java map to bean" 在上面的代码中,我们使用 Java 反射机制获取了 JavaBean 对象的所有字段信息,然后将这些字段信息与 Map 对象的键值对进行匹配,并将匹配的结果设置到 ...
Java中实现Map与对象相互转换是许多开发者经常遇到的问题,本文将介绍五种实现Map与对象相互转换的方法,每种方法都将通过示例代码进行详细的介绍。 方法一:使用org.apache.commons.beanutils转换 该方法使用org....
描述中提到的“直接实现Bean转换为Map,方便快捷,粘贴即用”,意味着这个工具或代码段提供了简单的API,可以快速集成到项目中,无需复杂的配置或额外的库依赖。这通常涉及到自定义转换器或者利用现有的库如Apache ...
总结,Java反射机制提供了动态访问和修改对象的能力,使得在Map和Object之间进行转换成为可能。然而,这种转换方式有一定的局限性,例如无法处理私有字段、枚举、接口、泛型等复杂情况。在实际开发中,考虑到性能和...
浅谈对象与Map相互转化 在 Java 开发中,对象与 Map 的相互转换是非常常见的需求。例如,在 Web 项目中,我们需要将 Java 对象转换为 JSON 数据,以便于前端 JavaScript 代码对其进行处理。又或者,在数据处理时,...
在Java开发中,常常需要在Map和对象之间,以及Map和JSON之间进行转换。这样的转换在处理Web请求、数据存储和传输时非常常见。Java本身并没有提供直接的转换机制,但通过一些第三方库或反射机制,我们可以实现这些...
Java基础将Bean属性值放入Map中的实例是指将Java对象的属性值以属性名称为键,存储到Map中的简单实现。该实现包括自身属性及从父类继承得到的属性。 Java类型的getField[s]方法只能获取public类型的属性,而...
该生成器具有合理的默认值和许多内置的类型转换,但是在配置或实现特殊行为时,它会自动退出。 与在运行时工作的映射框架相比,MapStruct具有以下优点: 通过使用普通方法调用而不是反射来快速执行编译时类型安全。...
Javabean和map相互转化方法代码示例 在 Java 开发中,经常需要将 JavaBean 对象和 Map 对象相互转换。例如,在导入数据时,可能需要将 Map 对象转换为 JavaBean 对象,以便更方便地处理数据。本文将介绍 JavaBean ...
在给定的代码片段中,展示了如何自定义一个方法将Bean转换为DBObject。这个方法遍历了给定Bean的所有字段,并根据字段类型将它们的值放入一个新的DBObject中。这里有一个简化的版本: ```java import java.lang....