java的自省机制_JAVA内省(自省)机制 ( Introspector , BeanInfo, PropertyDescriptor )
目的和作用: 通过内省,获取和操作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 )相关推荐
- java spi机制_Java 双亲委派机制的破坏—SPI机制
作者:程序猿微录 出自:TinyRecord 原文:tinyice.cn/articles/123 Java 双亲委派机制的破坏-SPI机制 在Java的类加载机制中,默认的就是双亲委派机制,这种委派 ...
- java tcp 心跳机制_Java实现心跳机制的方法
一.心跳机制简介 在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态,如服务器节点需要检测从节点是否失效.为了检测对方节点的有效性,每隔固定时间就发送一个固定信息给对方,对方回复一个固定信息 ...
- java的 内省机制_Java 内省机制
Java 内省机制 一.内省机制概述 Java 中的反射机制是通过名称得到类的方法和对象的成份,对于一切 Java 类都是适用的,但是有时候使用起来比较麻烦.而 JavaBean 是一种特殊的 J ...
- java的 内省机制_Java内省机制
转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...
- java内省和反射机制_Java内省和反射机制三步曲之 - 内省
经过多方面的资料搜集整理,写下了这篇文章,本文主要讲解java的反射和内省机制,希望对大家有点帮助,也希望大家提出不同的看法! 1).内省(Introspector)是 Java 语言对 Bean 类 ...
- java 强制垃圾回收_Java垃圾回收机制
Java垃圾回收机制 垃圾回收机制用到finalize.当程序创建对象.数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存中,当这块内存不再被任何引用变量引用时,这块内存 ...
- java 有哪些反射机制_Java 的反射机制你了解多少?
不知道多少次听说过了Java反射机制的使用,比如:Spring 框架如何实例化IoC容器中的Bean,编码过程中如何动态的清理对象中的字段信息等等.工作中只是听说.看同事们编码实践,但是自己却只是概念 ...
- java的reflection机制_Java的Reflection机制
什么时候使用Reflection: 在java语言中,创建一个类的对象通常使用new operator,但是如果预先不知道类名,类名是在程序运行过程中通过参数传递过来,就没法使用这种方法了,这种情况下 ...
- java垃圾回收菜鸟_java垃圾回收机制
1:对象可能不被垃圾回收 2:垃圾回收并不等于"析构" 3:垃圾回收只与内存有关,为了回收程序不再使用的内存 java虚拟机采用了"自适应"的垃圾回收机制,即& ...
最新文章
- 失效日期 软件测试案例_软件异常测试经验总结(精)
- 【问链-区块链与生活】 第一课 你为什么又在熬夜?
- 2018.11.05 NOIP模拟 规避(最短路计数)
- python调用腾讯自然语言处理api
- JavaScript数据容量单位转换(KB B MB GB....)
- 基于WPF+XMPP的IM程序开发日志 之二 WPF线程模型
- 为什么我的数据库应用程序这么慢?
- python 映射网络驱动器_用Delphi实现网络驱动器的映射和断开
- 华翼宽带android客户端,太凶残了:电信推华翼宽带专门防蹭网
- 【我拼搏的2016】为自己充电,发出耀眼的光
- 大型分布式订单系统项目实战
- ie edge浏览记录文件_如何在Microsoft Edge中清除浏览历史记录
- 安卓手机管理器_Kindle 传书最简单的方式:安卓/苹果手机都可以一键传书至Kindle!...
- p2p sdk接收文件服务端epoll模型源码
- 【Codeforces】1635E Cars 题解
- Photon网络中Player中存取数据
- 服务器返回状态码说明
- 分布式Ruby解决之道
- 【NLP】DSSM深度结构化语义模型原理
- vue路由的两种模式:hash与history的区别