java get null_get(null)

//获取一个指定State的实例化 参数为一个Class 而且为State类的子类

private static State getStateInstance(Class extends State> clazz) {

/*

* 问clazz 是否为空?

* 1.为空 null

* 2.不为空 执行clazz.getField('instance')

*

* 第二个问号 【如果执行了第二个问号,说明clazz肯定不为空】 那就是问 clazz.getField('instance')等不等于空

* 1.为空 返回空

* 2.不为空 返回clazz.getField('instance').get(null) as State [为什么可以get(null) 说明clazz.getField('instance')是静态字段]

* */

return clazz?.getField('instance')?.get(null) as State

//在java的反射中,通过字段获取对象,是通过

//

//Java代码 收藏代码

//public Object get(Object obj)

/*字段不是静态字段的话,要传入反射类的对象.如果传null是会报

java.lang.NullPointerException

但是如果字段是静态字段的话,传入任何对象都是可以的,包括null*/

}

举例子:

4016816f2b4c

image.png

Integer.getField("MIN_VALUE").get(null)

因为MIN_VALUE在Integer类中是静态字段 所以可以get(null)

结果为:

4016816f2b4c

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值