Java教程

Java反射机制

本文主要是介绍Java反射机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java反射机制

运行时动态地获取类的信息以及动态地调用对象的方法,叫做反射。

Java 反射(Reflection)是指 Java 程序在运行时,可以动态的加载、探知、使用编译期间完全未知的类。也就是说,Java 程序可以加载一个运行时才得知类名的类,获得类的完整构造方法,并实例化出对象,给对象属性设定值或者调用对象的方法等。这种在运行时动态获取类的信息以及动态调用对象方法的功能称为 Java 反射机制。

无论生成某类的多少个对象,这些对象都会对应于同一个class。

Class,Field,Method,Constructor.

使用反射的步骤:

1.获取需要操作的Class对象

2.调用Class的方法去获取Field Method的对象

3.使用反射的API进行操作

Class类

Class 类是使用 Java 反射机制的入口,封装了一个类或接口的运行时信息,开发者通过调用 Class 类的方法可以获取这些信息。例如可以通过 Class 中的 getDeclaredMethods()方法获取类的所有方法。下面列举了获取 Class 对象的几种方法。

  • Class.forName("全类名")

    将传入字符串形式的全类名,转为反射的入口 Class 对象,如下。

    Class c = Class.forName("java.lang.Object");
    
  • 类名.class

    通过类名定义反射的入口 Class 对象,如下。

    Class c = Car.class;
    
  • 包装类.TYPE

    通过包装类提供的 TYPE 属性,定义反射的入口 Class 对象,如下。

    Class c = Integer.TYPE;
    
  • 对象名.getClass()

    通过 Object 基类中的 getClass()方法,定义反射的入口 Class 对象,如下。

    String name="大力士";
    Class c = name.getClass();
    
  • Class 对象.getSuperClass()

    通过 Class 类中的 getSuperClass()方法,定义反射的入口 Class 对象,如下。

    Class c = String.class. getSuperClass();
    

    只有通过 Class 对象. getSuperClass()方法才能获得 Class 类的父类的 Class 对象。

这篇关于Java反射机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!