首页 黑马程序员_9

黑马程序员_9

举报
开通vip

黑马程序员_9黑马程序员_9 精品文档 黑马程序员 ---------------------- android培训、java培训、期待与您交流! ---------------------- JavaBean 概念: JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。...

黑马程序员_9
黑马程序员_9 精品文档 黑马程序员 ---------------------- android培训、java培训、期待与您交流! ---------------------- JavaBean 概念: JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。 JavaBean是一个类,这类定义了一系列的get和set方法。 JavaBean有一对get和set的方法,属性名就是方法去掉set、get,命名规则是: Age-->如果第二个字母是小写的,则把第一个字母变成小写-->age gettime-->time setTime-->time getCpu-->CPU如果第二个字母为大写则保持原样不变。 举例:class Person { private int x; 1 / 7 精品文档 public int getAge() { return x; } public void setAge(int age) { this.x=age; } } 我们可以通过JDK里对JavaBean提供的方法可以进行 操作。通过一个程序来举例说明。 public class IntroSpectorText { public static void main(String[] args)throws Exception { ReflectPoint pt1=new ReflectPoint(3,5); String propertyName="x"; PropertyDescriptor pd=new PropertyDescriptor(propertyName, pt1.getClass()); Method methodGetX=pd.getReadMethod(); Object retVal=methodGetX.invoke(pt1); System.out.println(retVal); PropertyDescriptor pd2=new 2 / 7 精品文档 PropertyDescriptor(propertyName, pt1.getClass()); Method methodSetX=pd2.getWriteMethod(); methodSetX.invoke(pt1,value); //方法一: 1.首先建立PropertyDescriptor对象,传入要操作的属性名和所属类的字节码,在创建对象后,我们就可以 通过调用ProperDescriptor类中提供方法来操作成员属性了。 .PropertyDescriptor类中提供了getReadMethod 和setWriterMethod方法来获得操作对象,当方法获得 了对象时,这时就可以调用Method类中invoke()方法来调用这个方法来设置或者获得所要求的属性值了。 //方法二: 在JDK中提供了Introspector类来操作JavaBean,Introspector类中提供了getBeanInfo()静态方法来 获得一个BeanInfo对象,BeanInfo类中提供了相应的方法让我们对JavaBean中属性进行操作: 1.首先要得到BeanInfo对象,然后调用getProPertyDescriptors方法来获得所有属性描述(这种方法只能 获得所有属性描述,若要想获得某一个属性描述,只能 3 / 7 精品文档 选择PropertyDescriptor方法),然后迭代判断来 选择我们将要操作的属性进行具体操作: private static Object getProperty(Object pt1, String propertyName) BeanInfo beanInfo=Introspector.getBeanInfo(pt1.getClass()); //把Java类当作JavaBean来看,beanInfo就代表了 JavaBean的细节信息。 PropertyDescriptor[] pds=beanInfo.getPropertyDescriptors(); //得到所有属性的描述 Object retVal=null; for(PropertyDescriptor pd:pds ) { if(pd.getName().equals(propertyName)) { Method methodGetX=pd.getReadMethod(); retVal=methodGetX.invoke(pt1); break; } } return retVal; 4 / 7 精品文档 } //方法三 还有一种对JavaBean的操作方法是:使用BeanUtils 包,此包提供了许多函数,其中有些函数可以很方便的对 JavaBean对象进行操作,在使用之前必须先加载 BeanUtils包,然后才可以使用其中的方法。在这起还要导入 日志logging包. BeanUtils类中提供了getProperty(Object obj, String name)可以获得指定属性名的值,返回值 是String型。setProperty(Object obj,String name,String value) 方法可以设置指定属性名的值。 String value=BeanUtils.getProperty(pt1,"x"); BeanUtils.setProperty(pt1, "x", "9");//可以进行 类型自动转换,字符串转成int类型 System.out.println(pt1.getX()); BeanUtils.setProperty(pt1, "birthday.time", "111");//属性链 System.out.println(BeanUtils.getProperty(pt1, "birthday.time")); 此外还有PropertyUtils,返回值类型和所需参数不是 String型,当转换出现问题时我们可以选择使用 PropertyUtils类来对JavaBean对象进行操作。BeanUtils 5 / 7 精品文档 是以字符串的形式对JavaBean进行操作(类型转化),而 PropertyUtils是以那个属性的本身类型进行操作(类行不 转换)。 int retVal=PropertyUtils.getProperty(pt1, "x"). PropertyUtils.setProperty(pt1, "x",); System.out.println( PropertyUtils.getProperty(pt1, "x").getClass().getName()); 一切事无法追求完美,唯有追求尽力而为。这样心无压力, 出来的结果反而会更好。 6 / 7 精品文档 感 谢 阅 读~ 7 / 7
本文档为【黑马程序员_9】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:0
分类:初中语文
上传时间:2017-09-26
浏览量:16