JAVA 反射

动态加载、获取信息

游戏加载地图

在有些游戏,需要加载地图,一般每张地图数据较大,地图数量较多,还会有新地图要下载,所以启动游戏时,不可能一次加载所有的地图。

而是需要哪张地图,就加载哪张

有更新时,先下载到本地,在加载

这就是 动态加载

迅雷加载插件

迅雷播放器有时不能播放视频时,会下载解码器,在动态加载,才能正常播放

其他软件

浏览器、QQ、开发工具等很多软件,都具有 动态加载 的功能

java 动态加载

同理,java有时也需要动态加载,当java软件已经发布,不能再改动。当有新功能时,或者需要一些信息时,就需要动态加载一些类,获取这些类的信息,并将这些类实例化,才能使用

java 动态加载 是通过 反射机制 实现的

概述

JAVA反射机制是在 运行状态中,
对于 任意一个 类,都能够知道这个类的所有 属性 和 方法
对于 任意一个 对象,都能够调用它的任意一个 属性 和 方法;

这种 动态获取的信息 以及 动态调用对象的方法 的功能称为java语言的 反射机制。

反射机制的功能

Java反射机制主要提供了以下功能:

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

实现反射机制的类

Java中主要由以下的类来实现Java反射机制,这些类都位于java.lang.reflect包中:

  • Class类:代表一个类。
  • Constructor类:代表类的构造方法。
  • Field类:代表类的成员变量(成员变量也称为类的属性)。
  • Method类:代表类的方法。
  • Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

原文出处:/show_1EF4t7G0r758.html