2 内省

作者: 一枝妖孽 | 来源:发表于2018-06-04 21:34 被阅读0次

1、内省(Introspector) — JavaBean
内省基于反射实现,主要用于操作JavaBean,通过内省 可以获取bean的getter/setter

2、为什么要学内省?
开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以SUN公司开发了一套API,专门用于操作java对象的属性。

3、什么是JavaBean和属性的读写方法?
通过内省技术访问(java.beans包提供了内省的API)JavaBean的两种方式。
1)通过PropertyDescriptor类操作Bean的属性
2)通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。

4、PropertyDescriptor
PropertyDescriptor顾名思义,就是属性描述之意。它通过反射
快速操作JavaBean的getter/setter方法。
重要方法:
getWriteMethod() – 获取setter方法,返回Method对像
getReadMethod() – 获取getter方法,返回Method对像

@Test
    public void test1() throws Exception{
        //得到Student类中的属性,被封装到了BeanInfo中
        BeanInfo bi = Introspector.getBeanInfo(Student.class);
        //得到类中的所有的属性描述器
        PropertyDescriptor[] pds = bi.getPropertyDescriptors();
        System.out.println(pds.length);
        for(PropertyDescriptor pd:pds){
            System.out.println(pd.getName());
        }
    }
    @Test
    public void test2() throws Exception{
        Student s = new Student();
        PropertyDescriptor pd = new PropertyDescriptor("name", Student.class);
        Method m = pd.getReadMethod();//得到getName()方法
        String value = (String)m.invoke(s, null);
        System.out.println(value);
        Method m1 = pd.getWriteMethod();//得到setName()方法
        m1.invoke(s, "王云");//改变name的值
        System.out.println(s.getName());
    }
图片1.png

相关文章

  • 2 内省

    1、内省(Introspector) — JavaBean内省基于反射实现,主要用于操作JavaBean,通过内省...

  • 内省2

    我总把自己的不好归结到别人身上,就是你们的错,是你们把我害成这样的。 我觉得现在的我不够好,是因为爸爸妈妈,今天爸...

  • Java基础

    一、反射&内省 1、反射 反射会有些许性能消耗,因为它把装载期做的事情搬到了运行期。 2、JavaBean内省 内...

  • (反射+内省机制的运用)处理jdbc的结果集

    1、原理:反射+内省 2、反射:动态创建对象 3、内省:动态处理对象的属性值 4、结果集处理: (1)把结果集中的...

  • java内省优化工具类BeanUtils(优化内省并防止内存泄漏

    java内省(Introspector)java内省优化工具类BeanUtils(优化内省并防止内存泄漏) Spr...

  • 20210126❤️❤️❤️❤️

    今日发生的3件好事: 1、阅读; 2、下班后听课学习; 3、内省。

  • 【读书清单】《亲密关系》5

    1 内省 内省是亲密关系的第三阶段,在这一阶段并非就是happy ending,而是需要处理更深层的关系。 2 关...

  • 内省别人的内省

    前几天听一位中科院的老师讲当代心理学概论与新进展,老师提到一个对我来说很新颖的方法论——内省别人的内省。 比如,当...

  • 2020-05-05

    内省

  • 内省

    今年过年第一次开车,本来自己脾气还算好吧,至少感觉能控制住,但是今年一次会车让我彻底失望了。歇斯底里的发火,差点控...

网友评论

      本文标题:2 内省

      本文链接:https://www.haomeiwen.com/subject/rafusftx.html