getMethods()与getDeclaredMethods()等的用法区别整理

一、引言:

在反射原理中,我们常常要使用Class实例获取其对应的构造方法、普通方法、成员属性、注解。我们会发现他们的获取方法比较多,下面我们对它们的用法说明进行了一些整理。

二、用法整理:

类型

获取全部

获取指定

Method

getMethods()

获取本类及超类的所有公共方法

返回一个包含Method对象的数组,这些对象反映了此 Class对象表示的类或接口的所有公共方法,包括由类或接口声明的对象以及从超类和超接口继承的对象

 

getDeclaredMethods()

获取本类的所有方法

返回一个包含Method对象的数组,这些对象反映此 Class对象表示的类或接口的所有已声明方法,包括公共,受保护,默认(程序包)访问和私有方法,但不包括继承的方法

getMethod​(String name, Class<?>... parameterTypes)

获取本类指定的公共成员方法

返回一个Method对象,该对象反映此Class对象表示的类或接口的指定公共成员方法 。

 

 

 

 

getDeclaredMethod​(String name, Class<?>... parameterTypes)

获取本类的成员方法

返回一个Method对象,该对象反映此Class对象表示的类或接口的指定声明方法 。

Constructor

getConstructors()

获取本类的所有公共构造函数

返回一个包含Constructor对象的数组,这些对象反映了此Class对象表示的类的所有公共构造 函数。

 

getDeclaredConstructors()

获取本类的所有构造函数

返回一个Constructor对象数组,该对象反映此Class对象表示的类声明的所有构造 函数。

getConstructor​(Class<?>... parameterTypes)

获取本类指定公共构造函数

返回一个Constructor对象,该对象反映此Class 对象表示的类的指定公共构造函数。

 

 

 

getDeclaredConstructor​(Class<?>... parameterTypes)

获取本类的指定构造函数

返回一个Constructor对象,该对象反映此Class对象表示的类或接口的指定构造 函数。

Field

getFields()

获取本类的所有公共字段

返回一个包含Field对象的数组,这些对象反映了此Class对象表示的类或接口的所有可访问公共字段。

 

getDeclaredFields()

获取本类的所有字段

返回一个Field对象数组,该对象反映此Class对象表示的类或接口声明的所有字段 。

getField​(String name)

获取本类的指定公共字段

返回一个Field对象,该对象反映此Class 对象表示的类或接口的指定公共成员字段。

 

 

 

getDeclaredField​(String name)

获取本类的指定字段

返回一个Field对象,该对象反映此Class 对象表示的类或接口的指定声明字段。

三、归类总结

我们不难发现它们分为以下四类:

  1. getXXX();获取指定公共对象
  2. getXXXs();获取所有公共对象
  3. getDeclaredXXX();获取指定对象(公共、私有、受保护、默认都可以)
  4. getDeclaredXXXs();获取所有对象(公共、私有、受保护、默认都可以)

四、注意事项:

除了获取方法时getXXXs();可以获取到超类的方法,其他都是获取到本类的方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值