java 反射机制原理 简述[通俗易懂]

java 反射机制原理 简述[通俗易懂]什么是反射机制?1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。反射的作用1、在运行时判断任意一个对象所属的类;2、在运行时构造任意一个类的对象;3、在运行时判断任意一个类所具有的成员变量和方法;4、在运行时调用任意一个对象的方法;生成动态代理。反射的…

大家好,又见面了,我是你们的朋友全栈君。

什么是反射机制?

1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。
2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。

反射的作用

1、在运行时判断任意一个对象所属的类;
2、在运行时构造任意一个类的对象;
3、在运行时判断任意一个类所具有的成员变量和方法;
4、在运行时调用任意一个对象的方法;生成动态代理。

反射的原理

反射的实现主要借助以下四个类:Class、Constructor、Field、Method ;
1、通过Class类获取类对象的三种方法:
第一种:通过类名获得:Class<?> class = ClassName.class;
第二种:通过类名全路径获得:Class<?> class = Class.forName(“类名全路径”);
第三种:通过实例对象获得:Class<?> class = object.getClass();

2、通过Class类获取实现类实例化:
Object o = (Object) c.newInstance() ; (其中c为Class类的实例化对象)

3、获取类中的构造方法:在这里插入图片描述在这里插入图片描述
4、获取类中的属性:

在这里插入图片描述
在这里插入图片描述

5、获取类中的方法:

在这里插入图片描述
在这里插入图片描述

注:

1、ClassForName 与 ClassLoader 的区别:
1)class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法;
2)classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157024.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图[通俗易懂]

    QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图[通俗易懂]QCustomPlot开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,过目并整理了原有文档,本系列旨在系统解说并逐步更新其各种Demo示例。

    2022年10月10日
  • elasticsearch 简书_elasticsearch用法

    elasticsearch 简书_elasticsearch用法 版权声明:本文为博主原创文章,欢迎转载,转载时请注明出处。欢迎留言讨论,大数据讨论qq群201011292 https://blog.csdn.net/Dante_003/article/details/76890218 &amp;lt;/div&amp;gt; …

  • python创建学生管理系统_学员管理系统 培训机构

    python创建学生管理系统_学员管理系统 培训机构使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能。将学员、学员管理后台、开始入口分为了3个py文件,分别是Student.py、Student_management.py、main.py。保存文件名叫student.txt文件。内含注释,我也是给初学者,可能有些地方解释不清楚。Student.py代码如下#定义学生的类classStudent(object):def__init__(self,name,gender,number):

  • 沟通和认同:自我的塑造与展现

    沟通和认同:自我的塑造与展现一、沟通和自我1、自我概念:指对自己所持有的相对稳定的知觉2、自尊:对自我价值的评估3、反映评价:我们每个人得出的自我概念反映的是我们认为别人看待我们的方式4、社会比较:依据与他人对照的方式评估自身5、自我概念是被周遭环境塑造出来的,塑造的过程以两种方式呈现:反映评价和社会比较6、自我概念的特征:6.1、自我概念是主观的(有些人长期乃至永久地经受着过度的自我怀疑和批判之苦)(当我们经历负面情绪的时候要比我们心情好时对自己更挑剔)6.2、自我概念抗拒改变7、接受一个

  • Google资深工程师深度讲解Go语言-内建容器(三)[通俗易懂]

    Google资深工程师深度讲解Go语言-内建容器(三)

  • blob类型字段[通俗易懂]

    blob类型字段[通俗易懂]1、在mysql中,bolb是一个二进制大型对象,是一个储存大量数据的容器,例如图片,音频。2、插入blob类型数据比如使用preparedStatement,而不能使用Statment,因为blob类型数据不能使用字符串拼接。有关preparedStatement的使用请参考https://blog.csdn.net/weixin_46457946/article/details/1197812273、mysql的四种blob类型类型大小TinyBlob255byte.

    2022年10月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号