美文网首页
《Oracle Java SE编程指南》26-01:反射的概念

《Oracle Java SE编程指南》26-01:反射的概念

作者: AT阿宝哥 | 来源:发表于2020-05-17 16:05 被阅读0次
课程封面-JavaSE-AT阿宝哥

内容导航

  • 前言
  • 1、Java反射的概念
  • 2、Java反射的作用
  • 3、Java反射相关API

前言

我们回忆一下在本课程之前使用Java类的过程:

  • 已知一个类的类名、以及类中的方法、属性、构造方法等等。

  • 使用创建对象表达式调用该类的构造方法创建其对象。

  • 使用对象调用它的方法或属性。

问题

如果仅仅知道一个类的类名,能否动态得到类的定义信息,包括哪些构造器、属性、方法等?

答案

通过反射相关的API可以做到,这样,我们就可以在应用程序运行时配置其具体功能


1、Java反射的概念

JAVA反射(Reflection )机制,是指应用程序在运行状态中,我们能够检查或修改其行为。也就是说,对于任意一个类,都能够知晓这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。


2、Java反射的作用

动态获取类的信息,进一步实现需要的功能。可能的使用场景包括:

  • Java EE项目中的部署描述符web.xml文件中通过配置Servlet、Filteer、Listener等可以创建其实例。

  • MyBatis、Spring、SpringMVC等框架通过XML文件描述类的基本信息,使用反射机制动态装配对象。


3、Java反射相关API

反射相关的API,大部分在java.lang.reflect包中,相关的类主要包括:

  • java.lang.Class(类型)
  • java.lang.reflect.Constructor(构造器)
  • java.lang.reflect.Method(方法)
  • java.lang.reflect.Field(属性)
  • ......

通过观察上述API,我们发现反射相关API将类的类型、方法、属性的定义都封装成了类。相应的,我们可以这样理解:

  • java.lang.Class(类型)
    类型的定义,即类的类。用来描述Java中所有的类和接口共有的特征和行为。

  • java.lang.reflect.Constructor(构造器)
    构造器的定义,即构造器的类。用来描述Java中所有类的构造器的共有的特征和行为。

  • java.lang.reflect.Method(方法)
    方法的定义,即方法的类。用来描述Java中所有类的方法的共有的特征和行为。
  • java.lang.reflect.Field(属性)
    属性的定义,即属性的类。用来描述Java中所有类的属性的共有的特征和行为。
  • ......

其中最重要的是java.lang.Class类,因为,反射的使用都是由它开始开始。


持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥

相关文章

网友评论

      本文标题:《Oracle Java SE编程指南》26-01:反射的概念

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