目的和作用: 通过内省,获取和操作javaBean中的成员信息(方法,事件,属性)。

—————————————————-内省使用的核心类(接口)———————————————————–

Java.beans.Introspector –工具类,通过 Introspector 类就可以获取和操作javaBean中的属性、事件和方法。(static BeanInfo)getBeanInfo(Class> beanClass)

通过 某个类.class的字节码对象 获取 JavaBean,返回 beanInfo对象— eg : getBeanInfo(类.class , Object.class ) 包括类.class,但不包括Object.class

java.beans.beanInfo—Bean的描述对象,可以通过它取得Bean内部的信息。(MethodDescriptor[ ]) getMethodDescriptors()

获得 beans 方法描述符(PropertyDescriptor[ ]) getPropertyDescriptors()

获取javaBaen中所有属性的描述器 ( 描述属性的信息 )

java.beans.PropertyDescriptor— Bean的属性描述器,它提供了一系列对Bean属性进行操作的方法(Method) getReadMethod()

获得 get 属性值的方法。 之后可以用反射 Method.invoke()(Method) getWriteMethod()

获得 set 属性值的方法。(String) getName()

获得属性名称。(Class) getPropertyType()

获得属性的类型 eg : class: java.lang.String

一般步骤:通过类 Introspector来获取某个对象的 BeanInfo 信息

然后通过 BeanInfo来获取属性的描述器 PropertyDescriptor

通过这个属性描述器就可以获取某个属性对应的 getter/setter方法,然后我们就可以通过反射机制来调用这些方法。

反射和内省的区别:

反射反射就是运行时获取一个类的所有信息,可以获取到.class的任何定义的信息(包括成员 变量,成员方法,构造器等)可以操纵类的字段、方法、构造器等部分。

内省:内省基于反射实现,主要用于操作JavaBean,通过内省 可以获取bean的getter/setter

生活中 反射就像我们照镜子,照镜子时候 你的所有信息会毫无出错毫无保留的反射到镜子中,而java中反射就像是运行时用一把镜子去照.class字节码 将这个类的所有信息照出来,‘照’出的结果是客观的,是正确的;

内省就像我们反省自己,通常我们是针对犯错而进行反省,根据所犯错误反省总结出结论,这个结论是主观的,不一定正确的,有时候你觉得你自己做错了,但可能事实上自己无可厚非。java中内省,是针对javaBean进行的,目的是为了找出bean的getter和setter以便操作这个bean。只要看到有getter或者setter 就认为这个类有那么一个字段,比如看到getName() 内省就会认为这个类中有name字段,但事实上并不一定会有name;

java的自省机制_JAVA内省(自省)机制 ( Introspector , BeanInfo, PropertyDescriptor )相关推荐

  1. java spi机制_Java 双亲委派机制的破坏—SPI机制

    作者:程序猿微录 出自:TinyRecord 原文:tinyice.cn/articles/123 Java 双亲委派机制的破坏-SPI机制 在Java的类加载机制中,默认的就是双亲委派机制,这种委派 ...

  2. java tcp 心跳机制_Java实现心跳机制的方法

    一.心跳机制简介 在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态,如服务器节点需要检测从节点是否失效.为了检测对方节点的有效性,每隔固定时间就发送一个固定信息给对方,对方回复一个固定信息 ...

  3. java的 内省机制_Java 内省机制

    Java 内省机制 一.内省机制概述 ​ Java 中的反射机制是通过名称得到类的方法和对象的成份,对于一切 Java 类都是适用的,但是有时候使用起来比较麻烦.而 JavaBean 是一种特殊的 J ...

  4. java的 内省机制_Java内省机制

    转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...

  5. java内省和反射机制_Java内省和反射机制三步曲之 - 内省

    经过多方面的资料搜集整理,写下了这篇文章,本文主要讲解java的反射和内省机制,希望对大家有点帮助,也希望大家提出不同的看法! 1).内省(Introspector)是 Java 语言对 Bean 类 ...

  6. java 强制垃圾回收_Java垃圾回收机制

    Java垃圾回收机制 垃圾回收机制用到finalize.当程序创建对象.数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存中,当这块内存不再被任何引用变量引用时,这块内存 ...

  7. java 有哪些反射机制_Java 的反射机制你了解多少?

    不知道多少次听说过了Java反射机制的使用,比如:Spring 框架如何实例化IoC容器中的Bean,编码过程中如何动态的清理对象中的字段信息等等.工作中只是听说.看同事们编码实践,但是自己却只是概念 ...

  8. java的reflection机制_Java的Reflection机制

    什么时候使用Reflection: 在java语言中,创建一个类的对象通常使用new operator,但是如果预先不知道类名,类名是在程序运行过程中通过参数传递过来,就没法使用这种方法了,这种情况下 ...

  9. java垃圾回收菜鸟_java垃圾回收机制

    1:对象可能不被垃圾回收 2:垃圾回收并不等于"析构" 3:垃圾回收只与内存有关,为了回收程序不再使用的内存 java虚拟机采用了"自适应"的垃圾回收机制,即& ...

最新文章

  1. 失效日期 软件测试案例_软件异常测试经验总结(精)
  2. 【问链-区块链与生活】 第一课 你为什么又在熬夜?
  3. 2018.11.05 NOIP模拟 规避(最短路计数)
  4. python调用腾讯自然语言处理api
  5. JavaScript数据容量单位转换(KB B MB GB....)
  6. 基于WPF+XMPP的IM程序开发日志 之二 WPF线程模型
  7. 为什么我的数据库应用程序这么慢?
  8. python 映射网络驱动器_用Delphi实现网络驱动器的映射和断开
  9. 华翼宽带android客户端,太凶残了:电信推华翼宽带专门防蹭网
  10. 【我拼搏的2016】为自己充电,发出耀眼的光
  11. 大型分布式订单系统项目实战
  12. ie edge浏览记录文件_如何在Microsoft Edge中清除浏览历史记录
  13. 安卓手机管理器_Kindle 传书最简单的方式:安卓/苹果手机都可以一键传书至Kindle!...
  14. p2p sdk接收文件服务端epoll模型源码
  15. 【Codeforces】1635E Cars 题解
  16. Photon网络中Player中存取数据
  17. 服务器返回状态码说明
  18. 分布式Ruby解决之道
  19. 【NLP】DSSM深度结构化语义模型原理
  20. vue路由的两种模式:hash与history的区别

热门文章

  1. 《Python程序设计入门与实践》219道课后习题答案
  2. win11如何开启电脑高性能模式?
  3. 谷歌浏览器禁用摄像头且无法通过设置修改的解决办法
  4. java long 百分比,Java 数字转百分比%
  5. 自动化办公神器!用Python批量识别发票并录入到Excel表格!可以讨财务女神开心了!
  6. 特种光纤所需学习知识(光纤光学)
  7. CNCERT在FIRST会议关于国内PC被攻击的数据
  8. 输出字符的 ASCII 码
  9. C++ delete陷阱
  10. Rootkit技术基础(4)