Java 反射机制

什么是反射

Java 反射机制是 Java 语言的一个特性,它允许程序在运行时访问、检查和修改它自己的结构,例如类、接口、属性和方法。反射机制使得 Java 程序能够动态地创建对象、调用方法、修改字段值等,而不需要在编译时就知道具体的类信息。

提供反射支持主要是Class和java.lang.reflect类库。

获取Class对象的四种方式

1.通过类名.class获取

class c = User.class;

2.通过Class.forName名获取

class c = Class.forName("com.example.User");

3.通过对象.getClass()获取

User user = new User();
class c = user.getClass();

4.通过类加载器获取(不推荐)

ClassLoader.getSystemClassLoader().loadClass("com.example.User");

java反射常见API的介绍

  1. Class 类
  • 功能:表示类的对象,提供了获取类信息的方法,如字段、方法、构造函数等。
  • 主要方法:
    getFields():获取所有公共字段。
    getDeclaredFields():获取所有声明的字段,包括私有字段。
    getMethods():获取所有公共方法。
    getDeclaredMethods():获取所有声明的方法,包括私有方法。
    getConstructors():获取所有公共构造函数。
    getDeclaredConstructors():获取所有声明的构造函数,包括私有构造函数。
    getSuperclass():获取类的父类。
    getInterfaces():获取类实现的所有接口。
    getAnnotations(): 获取类上的所有注解。
  1. Field 类
  • 功能:表示类的字段(属性),提供了访问和修改字段值的方法。
  • 主要方法:
    get(Object obj):获取指定对象的字段值。
    set(Object obj, Object value):设置指定对象的字段值。
    getType():获取字段的数据类型。
    getModifiers():获取字段的修饰符(如 public、private)。
    getAnnotations(): 获取属性上的所有注解。
  1. Method 类
  • 功能:表示类的方法,提供了调用方法的能力。
  • 主要方法:
    invoke(Object obj, Object... args):调用指定对象的方法。
    getReturnType():获取方法的返回类型。
    getParameterTypes():获取方法的参数类型。
    getModifiers():获取方法的修饰符(如 public、private)。
    getAnnotations(): 获取方法上的所有注解。
  1. Constructor 类
  • 功能:表示类的构造函数,提供了创建对象的能力。
  • 主要方法:
    newInstance(Object... initargs):创建一个新实例,使用指定的构造函数参数。
    getParameterTypes():获取构造函数的参数类型。
    getModifiers():获取构造函数的修饰符(如 public、private)。
    getAnnotations(): 获取构造方法上的所有注解。

java反射的示例代码请看参考

参考

posted @ 2024-09-04 14:56  抒写  阅读(4)  评论(0编辑  收藏  举报