| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java 中的反射原理 -> 正文阅读 |
|
[Java知识库]Java 中的反射原理 |
一:首先java的反射机制是指在运行时获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制,由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行仍然可以扩展。 二:我们如果想要通过反射去使用一个类的话,我们首先就先要获取该类的字节码文件对象,也就是类型为Class类型的对象。jdk提供了我们三种方式获取Class类型的对象。 1使用类的class属性来获取对应的class对象如图,我们先创建一个学生类 ? 这里我们可以看到返回的是true,代表这我们获取到的是同一个对象,证明我们获取到的就是Students的对象。 2调用对象的getclass()方法,返回改对象所属类对应的class对象 3使用class类中的静态方法forName(String className),该方法需要传入字符串参数,该字符串的值是某个全路径,也就是完整包名的路径。 三:接着就是我们通过class获取对象的构造方法 这里也提供了我们四种获取的方法。 ?Constructor<?>[] getConstructors():返回所有公共构造方法对象的数组 Constructor<?>[] getDeclaredConstructors() 返回所有构造方法对象的数组 ?Constructor<T> getConstructor(Class<?>...paramterTypes):返回单个公共构造方法对象 Constructor<T> getDeclaredConstructor(Class<?>...paramterTypes):返回单个构造方法对象 (注意这里面的参数代表:你要获取的构造方法的参数的个数和数据类型对应的字节码文件对象) 我们获得构造方法之后就是再通过newInstance()将其打印出来。这样子我们就实现了不用new对象创建,即反射。 总结: 其实反射就是通过class来创建我们的对象,大致理解为三步 首先通过class方法获取对象的字节码 然后再通过getConstructor获取对应的构造方法, 最后再通过newInstance()方法将其打印出来。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 19:11:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |