30-31内省访问JavaBean属性的两种方法
来源:互联网 发布:2017年冷链物流数据 编辑:程序博客网 时间:2024/05/18 02:43
30 对JavaBean的简单内省操作
//pt1为javaBean对象,propertyName为要设置的属性,value为给javaBean的值private static void setProperties(Object pt1, String propertyName, Object value) throws IntrospectionException, IllegalAccessException, InvocationTargetException { PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass()); Method methodSetX = pd.getWriteMethod(); methodSetX.invoke(pt1, value); }//pt1为javaBean对象,propertyName为要获取的属性 private static Object getProperty(Object pt1, String propertyName) throws IntrospectionException, IllegalAccessException, InvocationTargetException { PropertyDescriptor pd=new PropertyDescriptor(propertyName, pt1.getClass()); Method methodGetX=pd.getReadMethod(); Object retVal=methodGetX.invoke(pt1);//因为不知道返回的是什么类型,所以用Object return retVal; }
31 对JavaBean的复杂内省操作
l 演示用eclipse自动生成 ReflectPoint类的setter和getter方法。
l 直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用一段代码读取JavaBean的属性,然后再用一段代码设置JavaBean的属性。
l 演示用eclipse将读取属性和设置属性的流水帐代码分别抽取成方法:
Ø 只要调用这个方法,并给这个方法传递了一个对象、属性名和设置值,它就能完成属性修改的功能。
Ø 得到BeanInfo最好采用“obj.getClass()”方式,而不要采用“类名.class”方式,这样程序更通用。
l 采用遍历BeanInfo的所有属性方式来查找和设置某个RefectPoint对象的x属性。在程序中把一个类当作JavaBean来看,就是调用IntroSpector.getBeanInfo方法,得到的BeanInfo对象封装了把这个类当作JavaBean看的结果信息。
private static Object getProperty(Object pt1, String propertyName)throws Exception {/*PropertyDescriptor pd=new PropertyDescriptor(propertyName, pt1.getClass());Method methodGetX=pd.getReadMethod();Object retVal=methodGetX.invoke(pt1);//因为不知道返回的是什么类型,所以用Object*/BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());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;}
阅读全文
0 0
- 30-31内省访问JavaBean属性的两种方法
- JavaBean的两种内省操作
- 内省 操作javabean的属性
- 内省操作javabean的属性
- 内省操作javabean的属性
- 内省(Introspector)操作JavaBean的属性
- 内省(Introspector)操作JavaBean的属性
- 内省(Introspector)操作JavaBean的属性
- 内省操作javabean属性
- 内省调用JavaBean实现getXxx和setXxx的两种方式
- javascript修改属性的两种方法和访问文本
- 黑马程序员--java中属性的包装 -内省和javaBean
- JavaBean的两种引用方法
- javaBean的内省机制
- JAVABean的内省操作
- javaBean的内省操作
- javaBean的内省操作
- javaBean的内省操作
- 计算机网络端口分类
- win10安装虚拟机&&安装系统
- 29 由内省引出JavaBean的讲解
- 69 linux i2c设备驱动之ft5306电容触控芯片驱动
- bug*** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NS
- 30-31内省访问JavaBean属性的两种方法
- 装饰者模式
- 32 使用BeanUtils工具包操作JavaBean
- 安卓App压力测试
- PAT乙级1021. 个位数统计 (15)
- 快速查看表对的就说明,及表字段描述及字段类型
- 解决:本地计算机 上的 OracleOraDb10g_home1TNSListener服务启动后停止······
- 数位dp
- 33了解和入门注解的应用34 注解的定义与反射调用35为注解增加各种属性