2、JavaBean:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)一种特殊类,传递数据信息,成员方法用于访问自身私有字段,方法名符合某种命名规则;
(2)俩模块传递信息,使用JavaBean(值对象(Value Object),或“VO”);
(3)信息存储在私有变量中,通过set()、get()获得;
3、什么是内省(Introspector):》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)JDK提供一套 API 用来访问某个属性的 getter/setter 方法;
(2)java语言对JavaBean类的属性、事件的一种缺省处理方法;
4、PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:》》》》》》》
1. getPropertyType(),获得属性的Class对象;
2. getReadMethod(),获得用于读取属性值的方法;3.getWriteMethod(),获得用于写入属性值的方法;
3. hashCode(),获取对象的哈希值; 4. setReadMethod(Method readMethod),设置用于读取属性值的方法; 5. setWriteMethod(Method writeMethod),设置用于写入属性值的方法。5、Introspector类:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)封装JavaBean属性进行操作;
(2)调用BeanInfo beanInfo=Introspector.getBeanInfo(),将一个类当成是JavaBean;
(3)PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
6、BeanUtils:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)内省操作非常繁琐,所以Apache开发了一套简单、易用的API操作Bean属性:BeanUtils工具包;
(2)org.apache.commons.beanutils.BeanUtils;
(3)BeanUtils.setProperty(userInfo,"age",8);
7、BeanUtils特点:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)对基本类型自动转换;
(2)引用类型类中必须有对象,不能是null;
8、struts就用了内省机制,有set方法就有属性,不需要成员变量;》》》》》》》》》》》》》
9、java中的反射(reflection):》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)运行时获取一个类的所有信息,包括.class的任何定义的信息(成员 变量,成员方法,构造器等);
(2)可以操纵类的字段、方法、构造器等部分;
(3)内省基于反射实现,主要用于操作JavaBean,获取bean的getter/setter;