Java反射机制初步探索

来源:互联网 发布:sql查询语法 编辑:程序博客网 时间:2024/05/22 04:18

今天是2017年7月18日。我看了关于Java反射机制的一些知识。

首先,Java反射机制就是在程序运行状态当中,不是在程序编译过程当中,对于任意一个类,都可以知道这个类所有的属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称之为Java的反射机制。

下面首先介绍一下Class类的相关知识,Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该Class 对象。基本的 Java 类型(booleanbytecharshortintlongfloatdouble)和关键字 void 也表示为 Class 对象。Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的defineClass 方法自动构造的。 一个Class对象包含了特定某个类的有关信息,Class对象只能由系统建立对象并且一个类在JVM当中只会有一个Class实例。

Java反射机制有哪些作用呢?其实Java反射机制就是增强了程序的灵活性,避免将程序写死到代码里面。

例如:

实例化一个person()对象,不使用反射,new person();如果想变成实例化其他类,那么必须修改源代码并且需要进行重新编译。如果使用反射,使用Class.forName("person").newInstance();而且这个类描述可以写到配置文件当中,如**.xml,这样如果想要实例化其他类,只需要修改配置文件当中的“类描述”,并且不需要重新编译源代码。

原创粉丝点击