从0到1学习反射,为什么会出现反射技术,我们在项目中如何使用

2022-05-28 09:35:20 浏览数 (1)

目录

  • 反射小知识
  • 反射需要学的类:
  • 出现这个技术的背景
    • 原理:
  • tomcat 软件就使用了反射技术
  • 字节码文件
    • 如何获取字节码文件(如何创建class对象)
  • class 类
    • class 类常用的方法

反射小知识

所以利用反射创建多个对象,其实这些对象是同一个

反射需要学的类:

代码语言:javascript复制
            --  java.lang   包里面的Class 类
            --java.lang.reflect包中

o Constructor 类:代表类的构造方法 o Field 类:代表类的成员变量(属性) o Method类:代表类的成员方法

出现这个技术的背景

有一个已经做好的应用程序,如果有人想要增加功能,那么就需要这个应用程序提供一个接口。自己写好一个实现这个接口的类,然后在这个程序里面创建这个类的对象就可以了。 但是现在的问题是,这个应用程序已经做好,即使有实现这个接口的类,但是在这个程序里面不可以创建对象,所以自己创建的类在这个应用程序里面是不能够使用 的。

为了解决这个问题,如何做呢? 在对外提供接口的同时,还对外提供了一个配置文件,应用程序是一直在读这个配置文件, 现在我们需要做的就是,自己写一个实现这个接口的类,并且将这个类的名称告诉这个配置文件就可以了。

原理:

这个应用程序里面就有一个专门提取配置文件的流,读完就会得到这个类名,并且寻找对应的class文件,就是字节码文件,找到了这个应用程序就会加载这个文件,并且获取这个文件里面的所有的内容,获取到之后就可以调用里面的所有东西

所以也就是我们在写应用程序的时候,已经将反射技术写好了,

==============================================

所以,以后开发的时候,直接使用配置文件,学习框架的时候,也是利用了反射的技术,也是需要配置文件。

tomcat 软件就使用了反射技术

字节码文件

对于字节码文件,也会进行向上抽取,会抽取出一个Class类,这个类里面就可以得到所有的字节码文件的内容,对于反射,就是依靠这个Class类完成 的

如何获取字节码文件(如何创建class对象)

因为只要得到字节码文件,就可以进行反射技术,所以获取字节码文件就显得重要。

也就是所有的类都继承了object,所以所有的类都有这个方法

第三个方式,这个是必须掌握的 在java.lang 包中有一个类Class 里面有一个静态方法forName() ,就可以根据这个方法得到字节码文件

记住“forname里面写的是字符串,所以需要写类的全路径,即使将这个类导进来了,但是还是要写路径,因为这个参数是字符串,和导包没有关系。

class 类

class 类常用的方法

0 人点赞