专栏名称: 51CTO
51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术干货,还会不定期的举办有奖活动,敬请关注。
目录
51好读  ›  专栏  ›  51CTO

Java技术之反射

51CTO  · 公众号  · 科技媒体  · 2017-05-12 11:45

正文

请到「今天看啥」查看全文


1. 打印 UserBean Class 里的所有成员变量、成员方法,包括 private 的


首先我们拥有一个 Class userBeanClass = UserBean.class,我们要利用这个 Class 来打印它的成员变量 userName 和 userId。

  • 打印成员变量

那么如何获取成员变量呢,我们发现,Java 里提供了 Field 这个类来表示成员变量,提供了 clazz.getDeclaredFields() 来获取一个类内部声明的所有变量。因此,可以利用下面的代码获取 userBeanClass 内部所有的成员变量。

Field[] fields = userBeanClass.getDeclaredFields();

那么,我们如何将一个 field 对象打印成 private String userName; 这种形式呢?或者说如何分别找到 private、String、userName 这三个值呢?

其实,Field 里包含了三种元素来对应它们,分别是Modifier、Type、Name。

private 

打印结果:

public String userName;
private long userId;
  • 打印成员方法

类似成员变量的 Field,成员方法也有对应的类 Method,首先可以通过 Method[] methods = userBeanClass.getDeclaredMethods(); 获得所有的成员方法,然后,为了打印形如:public static void staticMethod(String devName)的数据,可以利用下列 method 提供的方法:







请到「今天看啥」查看全文