java.lang.reflect.Field.set(null, value)
2014-05-14 00:00
465 查看
摘要: 当Field为静态变量时,set方法的第一个参数可以是null
今天阅读代码是发现一行代码:
但是特别诧异,因为我记得API文档中对此有描述,第一个参数是Field所属的instance,如果是null,不会抛空指针异常吗?
请教别人后才发现,API中还有一句话我没有注意:
表示如果Field是static的,则obj即便给它传值,JVM也会忽略的。还说明了,此入参在这种情况下可以为null
今天阅读代码是发现一行代码:
field.set(null, value);
但是特别诧异,因为我记得API文档中对此有描述,第一个参数是Field所属的instance,如果是null,不会抛空指针异常吗?
请教别人后才发现,API中还有一句话我没有注意:
* <p>If the underlying field is static, the <code>obj</code> argument is * ignored; it may be null.
表示如果Field是static的,则obj即便给它传值,JVM也会忽略的。还说明了,此入参在这种情况下可以为null
相关文章推荐
- 类的成员变量通过Field.set方法提示java.lang.NullPointerException
- java.lang.NullPointerException:TextView.setText(java.lang.CharSequence)' on a null object reference
- Hibernate HQL view join: java.lang.NullPointerException at org.hibernate.util.ReflectHelper.getConst
- Android开发出现Java.lang.IllegalStateException的原因;Target host must be null,or set in parameters
- java.lang.IllegalStateException: Web app root system property already set to different value .
- 判断 java.lang.reflect.Field 的数据类型是否为数值类型
- java.lang.IllegalStateException: Target host must not be null, or set in parameters.
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
- java.lang.NullPointerException: No FileItemFactory has been set.
- 问题:java.lang.IllegalArgumentException:the bind value at index is null
- Set value DateTime field to null
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法
- panic: reflect: reflect.Value.SetUint using value obtained using unexported field(go语言)
- net.sf.json.JSONException: java.lang.reflect.InvocationTargetException & java.lang.NullPointerExcept
- Cglib学习报错 java.lang.reflect.InvocationTargetException-->null
- java.lang.IllegalStateException: Web app root system property already set to different value .
- java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=Aict/listPagedAict.action
- Parsing Failure in config.xml: java.lang.IllegalArgumentException: In production mode, it's not allowed to set a clear text value to the property
- java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j
- Spring: Caused by: java.lang.NoSuchFieldError: NULL