Class类

由于Class类没有公共构造方法,所以创建Class的对象的方法有以下几种:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.通过Class.forName静态方法返回Class类的一个实例

2.通过类名.class来获取一个Class类的实例

3.代码运行在非静态区,通过this.getClass()获取Class类的一个实例

 

Class对象既然是描述一个类,那么我们通过该Class的实例能够做什么事情?

1.获取类名

2.获取类的修饰限定符

3.获得一个类的属性

1).根据一个属性名获取一个属性的描述

2).获得一个类的公共的属性的描述

3).获取一个类的全部public属性的描述

4)根据一个属性名获取一个在类中声明的属性的描述

5)获取所有在类中声明的属性的描述

4.获取一个类的方法 

根据一个方法的名字获取类中的一个public的方法的描述 

获取所有在类中式public的方法的描述

根据一个方法名获取在类中声明的一个方法的描述

获取所有在类中声明的方法的描述

返回cls所代表的类的实例

cls.getMethod(name,parameterTypes)

cls.getMethods()

cls.getDeclaredMethod(name,paeameterTypes)

cls.getDeclaredMethods

 

Field类

获取其属性

使用Filed类的一个实例,来描述cls类的实例中一个属性

获取属性的名字

获取属性的类型

获取属性的限定符

暴力设置:设置field的访问:field。setAccessible(true)

 

Method类

通过cls.get DeclaredMethod获取Method对象

获取方法名

方法的参数类型 Clss[] paraType = m.getParameterTypes();

方法的返回值类型

获取方法的修饰符 int modifiers = m.getModifiers();

方法是可以执行的,使用invoke执行methid对象所表示的方法m.invoke(obj,args);

使用反射相关类,为对象p设置name属性的值 

设置器的形参和属性的类型应当一致

相当于P方法调用setName方法

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄