javabean

(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包的形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值