内容简介:假设我们需要创建一个类,但它的某些成员变量是私有的,并且没有提供公共的获取对象的成员变量:
1 简介
ReflectionUtils
是 Spring
中一个常用的类,属于 spring-core
包; ReflectionTestUtils
则属于 spring-test
包。两者功能有重叠的地方,而 ReflectionUtils
会更强大。在单元测试时使用 ReflectionTestUtils
,能增加我们的便利性。
假设我们需要创建一个类,但它的某些成员变量是私有的,并且没有提供公共的 setter
方法,而我们无法按照它的正常初始化流程来使它的这些成员变量是我们想要的值。这时就需要想办法修改一个类的私有变量,而 反射
可以帮助到我们。 Spring
也提供了 反射
相关的 工具 类: ReflectionUtils
和 ReflectionTestUtils
,这里只介绍 ReflectionTestUtils
的常用功能。
2 三类主要方法
获取对象的成员变量:
public static Object getField(@Nullable Object targetObject, String name)
给对象注入成员变量:
public static void setField(Class<?> targetClass, String name, @Nullable Object value)
调用成员方法:
public static <T> T invokeMethod(Object target, String name, Object... args)
3 总结
ReflectionTestUtils
是一个小工具类,需要用到的时候,自然会感受到它的益处。
欢迎访问 南瓜慢说 www.pkslow.com 获取更多精彩文章!
欢迎关注微信公众号< 南瓜慢说 >,将持续为你更新...
多读书,多分享;多写作,多整理。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 方便的 Kubernetes API 参考文档
- 使用drawio进行画图真的很方便
- WebStorm 2019.2 发布,更智能方便
- Prometheus 监控 MongoDB 真的太方便了
- HTTPS 不方便的地方!你知道多少?。。。
- 云原生时代如何方便的进行本地调试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。