仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 610|回复: 8
打印 上一主题 下一主题

[学习教程] 来看Java小例子:依据Map对象的内容创立JavaBean

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
Java供应java.beans.Introspector类,匡助我们剖析JavaBean类傍边有哪些属性,经由过程它能够便利的对JavaBean对象属性举行取值和赋值操纵。下面是一个例子,依据Map对象中的内容创立JavaBean对象。
  1. 01.importjava.beans.BeanInfo;
  2. 02.importjava.beans.IntrospectionException;
  3. 03.importjava.beans.Introspector;
  4. 04.importjava.beans.PropertyDescriptor;
  5. 05.importjava.util.HashMap;
  6. 06.importjava.util.Map;
  7. 07.importjava.lang.reflect.InvocationTargetException;
  8. 08.
  9. 09.publicclassMapToBean{
  10. 10.
  11. 11.publicstaticvoidmain(String[]args)throwsException{
  12. 12.Map<Object,Object>map=newHashMap<Object,
  13. Object>();
  14. 13.map.put("name","张三");
  15. 14.map.put("age",30);
  16. 15.Personp=convertMap(Person.class,map);
  17. 16.System.out.println(p.getName()+","+p.getAge
  18. ());
  19. 17.}
  20. 18.
  21. 19./**
  22. 20.*将一个Map对象转化为一个JavaBean
  23. 21.*
  24. 22.*@paramtype要转化的范例
  25. 23.*@parammap包括属性值的map
  26. 24.*
  27. 25.*@return转化出来的JavaBean对象
  28. 26.*
  29. 27.*@throwsIntrospectionException假如剖析类属性失利
  30. 28.*@throwsIllegalAccessException假如实例化JavaBean失利
  31. 29.*@throwsInstantiationException假如实例化JavaBean失利
  32. 30.*@throwsInvocationTargetException假如挪用属性的setter办法
  33. 失利
  34. 31.*/
  35. 32.privatestatic<T>TconvertMap(Class<T>type,
  36. Map<Object,Object>map)
  37. 33.throwsIntrospectionException,IllegalAccessException,
  38. 34.InstantiationException,InvocationTargetException{
  39. 35.BeanInfobeanInfo=Introspector.getBeanInfo(type);//猎取
  40. 类属性
  41. 36.Tt=type.newInstance();//创立JavaBean对象
  42. 37.
  43. 38.//给JavaBean对象的属性赋值
  44. 39.for(PropertyDescriptordescriptor:
  45. beanInfo.getPropertyDescriptors()){
  46. 40.StringpropertyName=descriptor.getName();
  47. 41.if(map.containsKey(propertyName)){
  48. 42.//上面一句能够try起来,如许当一个属性赋值失利的
  49. 时分就不会影响其他属性赋值。
  50. 43.descriptor.getWriteMethod().invoke(t,map.get
  51. (propertyName));
  52. 44.}
  53. 45.}
  54. 46.returnt;
  55. 47.}
  56. 48.}
  57. 49.
  58. 50.classPerson{
  59. 51.
  60. 52.privateStringname;
  61. 53.
  62. 54.privateintage;
  63. 55.
  64. 56.publicStringgetName(){
  65. 57.returnname;
  66. 58.}
  67. 59.
  68. 60.publicvoidsetName(Stringname){
  69. 61.this.name=name;
  70. 62.}
  71. 63.
  72. 64.publicintgetAge(){
  73. 65.returnage;
  74. 66.}
  75. 67.
  76. 68.publicvoidsetAge(intage){
  77. 69.this.age=age;
  78. 70.}
  79. 71.}
复制代码
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
再现理想 该用户已被删除
沙发
发表于 2015-1-20 15:50:46 来自手机 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
乐观 该用户已被删除
板凳
发表于 2015-1-28 06:04:24 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
admin 该用户已被删除
地板
发表于 2015-2-4 14:40:19 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
分手快乐 该用户已被删除
5#
发表于 2015-2-6 19:02:40 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
变相怪杰 该用户已被删除
6#
发表于 2015-2-18 06:47:51 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
莫相离 该用户已被删除
7#
发表于 2015-3-6 01:03:09 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小魔女 该用户已被删除
8#
发表于 2015-3-12 18:03:19 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
若相依 该用户已被删除
9#
发表于 2015-3-20 01:19:05 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表