Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用弹簧反光片_Java_Spring - Fatal编程技术网

Java 使用弹簧反光片

Java 使用弹簧反光片,java,spring,Java,Spring,我不完全理解下面代码中的最后一行 Field init = ReflectionUtils.findField(ABCClass.class, "init"); ReflectionUtils.makeAccessible(init); init.set(null, false); 我所理解的是,它使用反射API设置AbcClass.init=false。我不明白的是为什么我们没有这样的二传手 set(Object value) // looks logical as we have r

我不完全理解下面代码中的最后一行

 Field init = ReflectionUtils.findField(ABCClass.class, "init");
 ReflectionUtils.makeAccessible(init);
 init.set(null, false);
我所理解的是,它使用反射API设置AbcClass.init=false。我不明白的是为什么我们没有这样的二传手

set(Object value) // looks logical as we have reference to field , we can simply set the value
但是我们有类似的东西

set(Object obj,Object value) 
我浏览了api文档java.lang.Object) 上面说

如果基础字段是静态的,则忽略obj参数;可能 不能为空

否则,基础字段是实例字段。如果指定 对象参数为null,则该方法引发NullPointerException

但在我的测试用例中,它不会抛出任何空指针异常


我试着用谷歌搜索这个api的更多示例用法,没有找到任何有用的示例,可能更多的示例可以帮助我更好地理解。

init
是ABCClass上的一个静态方法。如文档所述,如果基础字段是静态的,则忽略第一个参数;它可能是空的。

我能想象的原因是这样的

您获取该字段的方式不知道它所属的实例。在静态字段中,这很好,因为静态使字段属于类,并且可以独立存在,而无需实例化对象


但非静态字段需要实例化对象才能存在。导致set方法需要知道该实例是什么。

您能给我指出一些示例代码吗,这将帮助我进一步理解