java - ReflectionTestUtils 设置带有返回 NPE 的弹簧值注释的字段
问题描述
我有一个实现接口的类。该类有一个私有双字段,它使用spring 注释field1
从应用程序属性中读取值。@Value
我正在开发测试,我需要从该类中填充该字段。为了实现这一点,我正在使用:
ReflectionTestUtils.setField(Class.class, "field1", value, double.class);
我总是遇到空指针异常,但调试日志显示:
DEBUG org.springframework.test.util.ReflectionTestUtils - Setting field 'field1' of type [double] on target object [null] or target class [class com.a.b.c.Class] to value [value]
.
有人知道我如何使用反射为这个字段设置值,或者只是如何为这个类字段填充一些值?我没有该类的任何实例,但有接口。
解决方案
第一个参数是实例,而不是类
YourClass object = new YourClass();
ReflectionTestUtils.setField(object, "field1", value);
推荐阅读
- wordpress - 有没有办法将自定义分类显示为链接?
- c++ - 这个外部链接指令是什么意思?
- javascript - 有没有一种更简洁的方法可以在 Javascript 中对传单地图上的多个标记进行编码?
- python - PYTHON:plot_confusion_matrix() 缺少 2 个必需的位置参数:“X”和“y_true”
- c# - C# .Net - 在书签中插入文本而不打开 Word
- postgresql - Docker 容器 - 无法在浏览器上访问
- react-native - @gorhom 底页作为单独的组件
- javascript - TextEncoder 未定义。使用 nodejs 在 wsl2 上连接到 MongoDB
- php - 从 PHP74 更新到 PHP8 -> PDO::ATTR_TIMEOUT 不工作
- git - 不支持的 SSL 协议版本