javabean

来源:互联网 发布:剑雨江湖进阶祝福数据 编辑:程序博客网 时间:2024/05/22 17:40
(1)内省(IntroSpector):主要是对JavaBean进行操作
(2)JavaBean:是一种特殊的Java类。这个类的名字要按照特殊规则的命名的。
例子:get和set方法
(3)一个类如果可以看做是JavaBean的话,那么这个JavaBean的属性不是通过成员变量的名字的到的,是根据方法来的。
Class Person{
    private int x;
    public void setAge(int age){this.x = age;}
    public int getAge(){return x;}
}
如果将一个Person类看做是JavaBean的话,那么这个这个Person的属性不是x,而是age。
(4)属性名:名字第二个字母是小的,那么第一个字母也要变成小的。
              名字第二个字母是大的,那么第二个字母不需要变化。
(5)利用内省操作javaBean
如果一个类可以看做是JavaBean,那么用JavaBean操作要比普通类操作好。
应用:传递对象的信息,这个对象被称为值对象。VO(Value Object)
public void InspectorForjavaBeanWithNotGood() throws Exception{
        ReflectionPoint rp = new ReflectionPoint(1,2);
        BeanInfo beaninfo = Introspector.getBeanInfo(rp.getClass());
        PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();
        for(PropertyDescriptor pd : pds){
            if(pd.getName().equals("x")){
                Method mtd = pd.getReadMethod();
                Object obj = mtd.invoke(rp);
                System.out.println(obj);
                break;
            }
        }
    }
(6)采用IntroSpector.getBeanInfo()得到BeanInfo。BeanInfo是将一个类看做JavaBean的话会是什么样子的。

    public void InspectorForjavaBean() throws Exception{
        ReflectionPoint rp = new ReflectionPoint(1,2);
        //得到它的属性
        //第二个字母是否是大写?第一个字母不变:第一个字母大写
        //根据方法名,利用反射找到那个方法
        //得到方法的返回值
        PropertyDescriptor pd = new PropertyDescriptor("x",rp.getClass());
        Method mtd = pd.getReadMethod();
        Object obj = mtd.invoke(rp);
        System.out.println(obj);
    }

(7)利用工具类施行内省。Beanutils工具包。以jar包的形式。

0 0