您的位置:首页 > 编程语言 > Java开发

javabean

2014-01-27 23:23 417 查看
(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包的形式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java javabean