Java反射

9 篇文章 0 订阅

在Java中,反射是指程序在运行期可以拿到一个对象的所有信息,也就是Reflection。

 在正常情况下,我们如果要调用一个对象的方法,或者访问一个对象的字段,通常都会传入对象实例:

如果不能获得User类,只有一个Object实例,这样子就无法获取到它里面的字段了。

 

这个时候,就要用到反射了

首先我先获取User的Class实例,然后,分别获取public字段、继承的public字段以及private字段,打印出Field

这个Field对象包含了一个字段的所有信息

getName():返回字段名称,例如,userName;

getType():返回字段类型,也是一Class个实例,例如,String.Class;

getModifiers():返回字段的修饰符,它是一个int,不同的bit表示不同的含义。

 我们现在用反射来获取password这个字段的信息。

       Field f = String.class.getDeclaredField("value");

       f.getName(); // "value"

       f.getType(); // class [B 表示byte[]类型

       int m = f.getModifiers();

       Modifier.isFinal(m); // true

       Modifier.isPublic(m); // false

       Modifier.isProtected(m); // false

       Modifier.isPrivate(m); // true

       Modifier.isStatic(m); // false

利用反射拿到字段的一个Field实例只是第一步,我们还可以拿到一个实例对应的该字段的值。

例如,对于一个Test1实例,我们可以先拿name字段对应的Field,再获取这个实例的name字段的值:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值