IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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()方法将其打印出来。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 16:57:32  更:2021-10-03 16:58:20 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码