Java基础之反射整理
什么是反射?
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。)语言的一个关键性质。
为什么需要反射
- 在运行时检测对象的类型;
- 动态构造某个类的对象;
- 检测类的属性和方法;
- 任意调用对象的方法;
- 修改构造函数、方法、属性的可见性;
- 以及其他。
得到Class类的三种方法
1.通过对象调用 getClass() 方法来获取
Li l1 = new Li(); Class c1 = l1.getClass();
2.直接通过 类名.class 的方式得到,该方法最为安全可靠,程序性能更高
Class c2 = Li.class;
3.通过 Class 对象的 forName() 静态方法来获取,用的最多
Class c3 = Class.forName("com.qq.Li");
Class的方法整理
getName():获得类的完整名字。
getFields():获得类的public类型的属性。
getDeclaredFields():获得类的所有属性。包括private 声明的和继承类
getMethods():获得类的public类型的方法。
getDeclaredMethods():获得类的所有方法。包括private 声明的和继承类
getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
getConstructors():获得类的public类型的构造方法。
getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。
newInstance():通过类的不带参数的构造方法创建这个类的一个对象。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
40+个必备区块链开发工具【收藏贴】
本文列出2019年最新整理的用于区块链开发的43种流行的开发库、开发工具与开发框架。 原文:43个区块链开发工具 - 汇智网 1、MetaMask 人人都知道MetaMask。MetaMask是一个浏览器扩展,可以让你用普通的浏览器访问以太坊区块链。 官网:https://metamask.io 2、Mist Mist浏览器是以太坊官方浏览器,内置访问以太坊区块链的能力。 官网:https://github.com/ethereum/mist 3、Remix IDE Remix是以太坊官方开发的Solidity在线集成开发环境,你可以直接在浏览器中编写Solidity代码、编译、调试以及部署合约。 官网:http://remix.ethereum.org 中文版:http://remix.hubwiz.com 4、EthFiddle 你可以使用EthFiddle在浏览器中直接编写、编译并调试Solidtity代码,就像jsfiddle的孪生兄弟。 官网:https://ethfiddle.com 5、Truffle开发框架 Truffle是最流行的以太坊开发框架,它是一个开发环境,包含...
- 下一篇
maven checkstyle插件报错
问题:checkstyle插件报错 详情:我在研究docker-maven-plugin插件源码,执行mvn clean package报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on project docker-maven-plugin: Failed during checkstyle configuration: cannot initialize module SuppressionFilter - Cannot set property 'file' to 'checkstyle-suppressions.xml' in module SuppressionFilter: InvocationTargetException: Unable to find: checkstyle-suppressions.xml: http://www.puppycrawl.com/dtds/suppressions_1_0.d...
相关文章
文章评论
共有0条评论来说两句吧...