java反射应用——从Class类中获取信息

本文详细介绍了如何使用Java反射API来获取类的各种信息,包括构造方法、其他方法及属性等。文章通过具体示例展示了如何利用Class对象来访问这些信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在获得某个类所对应的Class对象之后,程序通过调用Class对象的方法来获得所对应类的真实信息,主要通过Class对象的大量的实例方法来实现。

一、获取类的构造方法:

1、getConstructor(Class[]  params):返回此Class对象所对应的类的指定的public构造方法,params参数是按申明顺序标识该方法参数类型的Class对象的一个数组。构造方法的参数类型与params所指定的参数类型所匹配。

例如: Constructor   co = c.getConstructor(String.class,list.class);

2、getConsturctors():返回此Class对象所表示的类的所有public构造方法;

3、getDeclaredConstructor():返回此Class对象所表示的类的指定构造方法,与构造方法的访问级别无关。

4、getDeclaredConsturctors():返回所有的、与访问级别无关的构造方法。

备注:Declared表示公开的意思,表示方法不会考虑访问级别。

二、获取类的其他方法:

1、Method  getMethod(String name,Class[] params):返回Class对象对应的类的指定的public方法,name参数指定方法名、params按声明顺序标识该方法参数类型的Class对象的一个数组。

示例:

   假定c为某Class对象

c.getMethod("info",String.class);   表示获取的是c对应的类中名称为info的方法,这个方法中有一个参数,类型为String

c.getMethod("info",String.class,Integer.class);还是返回c对应的类中名称为info的方法,这个方法有俩个参数。

2、Method[]  getMethods():返回Class对象对应的类的所有的 public方法,返回类型为Method的数组。

3、Method  getDeclaredMethod(String name,Class[] params):返回的指定方法、与方法的访问级别无关;

4、Method[]  getDeclaredMethods():返回Class对象对应的类的所有方法(与访问级别无关),返回类型为Method的数组。

三、获取类的属性:

Field  getField(String name):返回Class对象对应的类的指定的public属性,name参数指定属性名。

例如,c.getField("age");返回c表示类中,名称为age的那个属性。

其他的方法:getFields()、getDeclaredField()、geDeclaredFields()方法与上面的类似,不再赘述。

 

此外,还可以通过相关的方法获取Class对象对应类的注释getAnnotations()、内部类getDeclaredClasses、外部类getDeclaringClasses。

 

四、示例代码:

Class<A> cla = A.class;

Constructor[] cstr = cla.getDeclaredConstructors();

system.out.println("=======获取A类的全部构造方法,并显示======");

//利用for each语句

for(Constructor c:cstr){

       system.out.println(c.toString());

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值