首页 > 解决方案 > 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].

有人知道我如何使用反射为这个字段设置值,或者只是如何为这个类字段填充一些值?我没有该类的任何实例,但有接口。

标签: javaspringreflection

解决方案


第一个参数是实例,而不是类

YourClass object = new YourClass();
ReflectionTestUtils.setField(object, "field1", value);

推荐阅读