美文网首页
反射机制原理的深度理解2017-12-26

反射机制原理的深度理解2017-12-26

作者: 梦境中_i | 来源:发表于2018-03-07 19:49 被阅读0次

首先我们编写person.java文件如下:

然后创建测试反射机制的类

原理解析:

要理解反射机制的实现过程,首先要明白几个知识点

如图1中Person.java是一个java的原文件,原文件经过编译会得到一个Person.class的二进制文件,然后类加载器ClassLoader加载 生成的Person.class 到JVM

在jvm中就会生成一个与Person.class对应的Class类型的文件,这个文件中有class文件中的属性,方法,注解,构造方法等Person.class的元信息。我们个这个文件起了对象名叫clazz.

所以可以通过创建Class类型的对象clazz(clazz是我们自己命名的),clazz就是元信息文件的对象,使用该对象调用newInstance()就能创建出一个Person类型的对象,同理也可以通过clazz来创建出Person类中的其它成员(方法,构造方法,属性等)

创建出的方法way,就可以通过关键字invoke来传入对象作为参数来执行,因为方法的执行,一定是通过对象来调用的。所以必须要有对象这个参数的传入。

工作真实环境应用:

三大框架底层全部是基于反射机制实现的。xml配置类的唯一标识syn.reflection.study.Person。

比如有一个付款的接口PayInterface,我们的付款方法是有微信,支付宝,银联支付等,当我们付款的时候支付宝付款的类为AliPayImpl,并且AliPayImpl implements PayInterface

当我们点击支付宝支付的时候

其实后台就会有

String payImpl ="syn.study.AliPayImpl"

传到

Class.newInstance(payImpl )

就会动态创建对象了。也就是通过发射来在程序运行过程中创建对象,而不是事先new一个出来。

相关文章

  • 反射机制原理的深度理解2017-12-26

    首先我们编写person.java文件如下: 然后创建测试反射机制的类 原理解析: 要理解反射机制的实现过程,首先...

  • OC的反射机制

    目录 1 反射机制的概念 2 反射机制原理 首先还是按照惯例和大家解释下什么反射机制? 反射的概念是由Smith在...

  • Java 反射 reflection

    spring源代码,其基本原理如依赖注入、aop、以及xml技术,动态反射机制 Reflection 学习反射原理...

  • java的反射机制

    最近在学习spring框架的原理,其中运用到了大量的反射机制(反射是框架设计的灵魂),下面就介绍下关于反射机制的使...

  • 第6讲 | 动态代理是基于什么原理?

    谈谈 Java 反射机制,动态代理是基于什么原理? 典型回答 反射机制是 Java 语言提供的一种基础功能,赋予程...

  • 反射机制的理解

    Reflection 是 Java 程序开发语言的重要特征之一,是学习Java必须知识点。 Java反射机制主要提...

  • iOS底层学习文章

    iOS黑魔法-Method Swizzling Objective-C 反射机制 KVC原理剖析 KVO原理分析及...

  • Java基本知识

    java反射机制 大白话说Java反射:入门、使用、原理[https://www.cnblogs.com/chan...

  • spring记错本

    1.IOC:控制反转(DI:依赖注入)对控制反转和依赖注入的理解:image.png 其中原理是利用反射机制调用s...

  • Java 反射机制

    [1]. java反射详解[2]. Java Reflection(反射机制)详解[3]. 深入理解Java类型...

网友评论

      本文标题:反射机制原理的深度理解2017-12-26

      本文链接:https://www.haomeiwen.com/subject/htgegxtx.html