ReflectionTestUtils 设置带有弹簧值注释返回 NPE 的字段

Ger*_*rdo 0 java reflection spring

我有一个实现接口的类。该类有一个私有的 double 字段field1,它使用@Valuespring 注释从应用程序属性中读取值。

我正在开发测试,我需要从该类中填充该字段。为了实现这一点,我正在使用:

        ReflectionTestUtils.setField(Class.class, "field1", value, double.class);
Run Code Online (Sandbox Code Playgroud)

我总是收到空指针异常,但调试日志显示:

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].

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

Dan*_*eDM 6

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

YourClass object = new YourClass();
ReflectionTestUtils.setField(object, "field1", value);
Run Code Online (Sandbox Code Playgroud)