java命名空间java.lang类class<t>的类成员方法:
getmethod定义及介绍
本文导语:
getmethod
public method getmethod(string name,
class... parametertypes)
throws nosuchmethodexception,
securityexception
返回一个 method 对象,它反映此 class 对象所表示的类或接口的指定公共成员方法。na...
public method getmethod(string name,
class>... parametertypes)
throws nosuchmethodexception,
securityexception
- 返回一个
method
对象,它反映此 class
对象所表示的类或接口的指定公共成员方法。name
参数是一个 string
,用于指定所需方法的简称。parametertypes
参数是按声明顺序标识该方法形参类型的 class
对象的一个数组。如果 parametertypes
为 null
,则按空数组处理。
如果 name
是 "
;" 或 "
",则将引发 nosuchmethodexception
。否则,要反映的方法由下面的算法确定(设 c 为此对象所表示的类):
- 在 c 中搜索任一匹配的方法。如果找不到匹配的方法,则将在 c 的超类上递归调用第 1 步算法。
- 如果在第 1 步中没有找到任何方法,则在 c 的超接口中搜索匹配的方法。如果找到了这样的方法,则反映该方法。
在 c 类中查找匹配的方法:如果 c 正好声明了一个具有指定名称的公共方法并且恰恰有相同的形参类型,则它就是反映的方法。如果在 c 中找到了多个这样的方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则反映该方法;否则将从中任选一个方法。
注意,类中可以有多个匹配方法,因为尽管 java 语言禁止类声明带有相同签名但不同返回类型的多个方法,但 java 虚拟机并不禁止。这增加了虚拟机的灵活性,可以用来实现各种语言特性。例如,可以使用桥方法 (brige method)实现协变返回;桥方法以及将被重写的方法将具有相同的签名,不同的返回类型。
请参阅java 语言规范 第 8.2 和 8.4 节。
- 参数:
name
- 方法名parametertypes
- 参数列表
- 返回:
- 与指定的
name
和 parametertypes
匹配的 method
对象
- 抛出:
nosuchmethodexception
- 如果找不到匹配的方法,或者方法名为 "" 或 ""
nullpointerexception
- 如果 name
为 null
securityexception
- 如果存在安全管理器 s,并满足下列任一条件:
- 调用
s.checkmemberaccess(this, member.public)
拒绝访问方法
- 调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkpackageaccess()
的调用拒绝访问该类的包
- 从以下版本开始:
- jdk1.1