反射工具类的设计

一.类和接口相关

1.getClass方法

通过全类名获取Class对象

 

二.方法相关

1.getMethod方法

通过Class对象、方法名及参数类型列表获取该类对应的方法

该方法实际通过Class对象调用getDeclaredMethod()方法来获取Method对象

有可能在本类中获取不到要到父类中获取

要注意参数类型列表获取之后没有基本数据类型,只可能有包装数据类型,如果原方法中的参数类型为基本数据类型就会找不到该方法

2.getParameterTypes方法

通过参数列表获取参数类型列表

3.invokeMethod方法

通过反射执行Class对应类实例的方法

因为该方法可能不在当前类中,有可能要到父类中去获取。

因为给定的条件中没有直接给定参数类型列表,需要从args中获取参数类型列表

在执行方法前需要将方法先设置为可访问的,否则可能会出现访问不到的异常

 

三.字段相关

1.getField

通过Class对象和字段名获取该类对应的字段

2.getFieldValue

获取指定对象的指定字段的值

在获取字段值之前需要将字段先设置为可访问的,否则可能会出现访问不到的异常

3.setFieldValue

设置指定对象的指定字段的值

在设置字段值之前需要将字段先设置为可访问的,否则可能会出现访问不到的异常 

四.泛型相关

1.需求

通过反射获取定义Class时声明的父类泛型参数的类型

2.步骤

通过getGenericSuperclass()方法获取带泛型参数的父类Type

将带参数的父类Type转换为Type的子类类型ParameterizedType,因为Type接口什么方法都没有

通过getActualTypeArguments()方法获取泛型参数数组

通过泛型的索引获取具体的泛型参数的类型并返回

来源:最初的愚者,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/61794

发表评论

登录后才能评论
服务中心
服务中心
联系客服
联系客服
侵权联系 投诉举报
返回顶部
河南,挺住!郑州,挺住!一起为他们加油!!