Java小例子:根据Map对象的内容创建JavaBean - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-17
Java小例子:根据Map对象的内容创建JavaBean时间:2011-06-10 csdn博客 YidingHeJava 提供 java.beans.Introspector 类,帮助我们分析 JavaBean 类当中 有哪些属性,通过它可以方便的对 JavaBean 对象属性进行取值和赋值操作。下 面是一个例子,根据 Map 对象中的内容创建 JavaBean 对象。 01.import java.beans.BeanInfo; 02.import java.beans.IntrospectionException; 03.import java.beans.Introspector; 04.import java.beans.PropertyDescriptor; 05.import java.util.HashMap; 06.import java.util.Map; 07.import java.lang.reflect.InvocationTargetException; 08. 09.public class MapToBean { 10. 11. public static void main(String[] args) throws Exception { 12. Map<Object, Object> map = new HashMap<Object, Object>(); 13. map.put("name", "张三"); 14. map.put("age", 30); 15. Person p = convertMap(Person.class, map); 16. System.out.println(p.getName() + ", " + p.getAge ()); 17. } 18. 19. /** 20. * 将一个 Map 对象转化为一个 JavaBean 21. * 22. * @param type 要转化的类型 23. * @param map 包含属性值的 map 24. * 25. * @return 转化出来的 JavaBean 对象 26. * 27. * @throws IntrospectionException 如果分析类属性失败 28. * @throws IllegalAccessException 如果实例化 JavaBean 失败 29. * @throws InstantiationException 如果实例化 JavaBean 失败 30. * @throws InvocationTargetException 如果调用属性的 setter 方法 失败 31. */ 32. private static <T> T convertMap(Class<T> type, Map<Object, Object> map) 33. throws IntrospectionException, IllegalAccessException, 34. InstantiationException, InvocationTargetException { 35. BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取 类属性 36. T t = type.newInstance(); // 创建 JavaBean 对象 37. 38. // 给 JavaBean 对象的属性赋值 39. for (PropertyDescriptor descriptor : beanInfo.getPropertyDescriptors()) { 40. String propertyName = descriptor.getName(); 41. if (map.containsKey(propertyName)) { 42. // 下面一句可以 try 起来,这样当一个属性赋值失败的 时候就不会影响其他属性赋值。 43. descriptor.getWriteMethod().invoke(t, map.get (propertyName)); 44. } 45. } 46. return t; 47. } 48.} 49. 50.class Person { 51. 52. private String name; 53. 54. private int age; 55. 56. public String getName() { 57. return name; 58. } 59. 60. public void setName(String name) { 61. this.name = name; 62. } 63. 64. public int getAge() { 65. return age; 66. } 67. 68. public void setAge(int age) { 69. this.age = age; 70. } 71.} |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java小例子:根据Map对象的内容创建JavaBean - 编程入门网的所有评论