反射&注释API

本文深入探讨了Java中的反射机制,详细介绍了如何通过反射获取构造器、成员变量和方法对象,包括Constructor类的使用、Field类的取值与赋值方法以及Method类触发执行的方法。此外,还讲解了注解的解析过程,为理解Java编程提供了更深层次的视角。
摘要由CSDN通过智能技术生成

反射获取构造器对象

获取对象

说明

Constructor<?>[] getConstructors​()

Public,返回所有构造器对象的数组

Constructor<?>[] getDeclaredConstructors​()

返回所有构造器对象的数组,存在就能拿到

Constructor<T> getConstructor​

(Class<?>... parameterTypes)

Public,返回单个构造器对象

Constructor<T> getDeclaredConstructor​(Class<?>... parameterTypes)

返回单个构造器对象,存在就能拿到

Constructor类中用于创建对象的方法

方法

说明

T newInstance

(Object... initargs)

是public,根据指定的构造器创建对象

public void  setAccessible

(boolean flag)

非public,设置为true,表示取消访问检查,进行暴力反射

反射获取成员变量对象

获取对象

说明

Field[] getFields()

public

返回所有成员变量对象的数组

Field[] getDeclaredFields()

返回所有成员变量对象的数组,存在就能拿到

Field getField(String name)

public

返回单个成员变量对象

Field getDeclaredField

(String name)

返回单个成员变量对象,存在就能拿到

Field类中用于取值、赋值的方法

方法

说明

void set

(Object obj, Object value)

赋值

Object get(Object obj)

获取值

反射获取方法对象

获取对象

说明

Method[] getMethods​()

public,返回所有成员方法对象的数组

Method[] getDeclaredMethods​()

返回所有成员方法对象的数组,存在就能拿到

Method getMethod​(String name,

Class<?>... parameterTypes)

public,返回单个成员方法对象

Method getDeclaredMethod​

(String name, Class<?>...

parameterTypes)

返回单个成员方法对象,存在就能拿到

Method类中用于触发执行的方法

方法

说明

Object invoke​(Object obj,

Object... args)

参数一:用obj对象调用该方法

参数二:调用方法的传递的参数(如果没有就不写)

返回值:方法的返回值(如果没有就不写)

注解的解析

获取对象

说明

Annotation[]    getDeclaredAnnotations()

获得当前对象上使用的所有注解,返回注解数组

T getDeclaredAnnotation

(Class<T> annotationClass)

根据注解类型获得对应注解对象

boolean isAnnotationPresent

(Class<Annotation> annotationClass)

判断当前对象是否使用了指定的注解,如果使用了则返回true,否则false

元注释

@Target

中可使用的值定义在ElementType枚举类中,常用值如右

TYPE  类,接口

FIELD  成员变量

METHOD  成员方法

PARAMETER  方法参数

CONSTRUCTOR  构造器

LOCAL_VARIABLE  局部变量

@Retention

中可使用的值定义在RetentionPolicy枚举类中,常用值如下

SOURCE  注解只作用在源码阶段,生成的字节码文件中不存在

CLASS    注解作用在源码阶段,字节码文件阶段,运行阶段不存在,默认值

RUNTIME 注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值