当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)

类 java.lang.reflect.Method

java.lang.Object
   |
   +----java.lang.reflect.Method

public final class Method
extends Object
implements Member

Method 提供相关信息和访问、类或接口的单个方法。该镜像方法可以是一个类方法或一个实例方法 (包含抽象方法在内) 。

当用基本方法的形参匹配实参时允许构造子进行扩展转换,但若发生缩减转换时,则抛出 IllegalArgumentException 。

参见:
Member, Class, getMethods, getMethod, getDeclaredMethods, getDeclaredMethod

方法索引

equals(Object)
将该 Method 与指定对象作比较。
getDeclaringClass()
返回表示类或接口的 Class 对象,此类或接口用于说明该 Method 对象表示的方法。
getExceptionTypes()
返回 Class 对象类型数组,此对象用于表示该 Method 对象表示的基本方法所抛出校验异常的类型。
getModifiers()
以 integer 类型返回该 Field 对象所表示域的 Java 语言修饰词。
getName()
以 String 类型返回该 Field 对象所表示方法的名字。
getParameterTypes()
返回一个 Class 对象类型数组,此对象按声明顺序表示该 Method 对象所表示方法的形参类型。
getReturnType()
返回一个 Class 对象,它表示该 Method 对象所表示方法正式的返回类型。
hashCode()
返回该 Method 的散列码。
invoke(Object, Object[])
在指定对象上用指定参数调用该 Method 对象表示的基本方法。
toString()
返回描述该 Method 的字符串。

方法

getDeclaringClass
 public Class getDeclaringClass()
返回表示类或接口的 Class 对象,此类或接口用于说明该 Method 对象表示的方法。

getName
 public String getName()
以 String 类型返回该 Field 对象所表示方法的名字。

getModifiers
 public native int getModifiers()
以 integer 类型返回该 Field 对象所表示方法的 Java 语言修饰词。使用该 Modifier 类来为修饰词译码。

参见:
Modifier
getReturnType
 public Class getReturnType()
返回一个 Class 对象,它表示该 Method 对象所表示方法正式的返回类型。

getParameterTypes
 public Class[] getParameterTypes()
返回 Class 对象类型数组,此对象按声明顺序表示该 Method 对象所表示方法的形参。若基本方法没有参数,则返回长度为零的数组。

getExceptionTypes
 public Class[] getExceptionTypes()
返回 Class 对象类型数组,此对象表示该 Method 对象表示的基本构造子所抛出校验异常的类型。若方法未抛出校验异常,则返回长度为零的数组。

equals
 public boolean equals(Object obj)
将该 Method 与指定对象作比较。若相同则为 true 。若两个 Methods 用相同类来说明且具有相同的名字和形参类型,则其相同。

覆盖:
Object 中的 equals
hashCode
 public int hashCode()
返回该 Method 的散列码。它作为基本方法的声明类名及方法名的散列码的异或来计算得到。

覆盖:
Object 中的 hashCode
toString
 public String toString()
返回描述该 Method 的字符串。若字符串后附带方法返回类、空格、声明方法的类、周期、方法名、插入语、方法的形参类型的逗号分隔表,则将字符串格式化成访问修饰词的方法。若方法抛出校验异常,则参数表后附带空格、抛出字、所抛出异常类型的逗号分隔表。例如:
    public boolean java.lang.Object.equals(java.lang.Object)
 

访问修饰词以“Java 语言规范”指定的典型顺序放置。首先是 publicprotectedprivate , 然后将其它修饰词按下列次序放置: staticfinalsynchronizednative

覆盖:
Object 中的 toString
invoke
 public native Object invoke(Object obj,
                             Object args[]) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
在指定对象上用指定参数调用该 Method 对象表示的基本方法。将个别参数自动解包来匹配原始形参,必要时可对原始参数和形参进行扩展转换。若基本方法的返回值有一个原始类型,则自动将其打包于某对象中。

方法调用依次按下列步骤进行:

若基本方法是静态的,则忽略指定对象的参数。它可以为 null 。

否则, 该方法是一个实例方法。若指定对象参数为 null , 则调用抛出 NullPointerException 。否则, 若指定对象参数不是类的实例或说明基本方法的接口,则调用抛出 IllegalArgumentException 。

若该 Method 对象使 Java 语言存取控制和基本方法不可存取,则该调用抛出 IllegalAccessException 。

若 args 提供的实参与基本方法必需的形参不同,则该调用抛出 IllegalArgumentException 。

对于提供的 args 数组中的每个实参:

若相应形参有一个原始类型,则试进行解包转换将对象值转换为原始类型值。若尝试失败,则该调用抛出 IllegalArgumentException 。

进行可能的解包之后,若标志或扩展转换不能将参数值转换为相应形参,则该调用抛出 IllegalArgumentException 。

若基本方法是一个实例方法, 则用动态方法查寻来调用,如同在 Java 语言规范中 15.11.4.4 章节所描述的;特别是将要发生基于目标对象的运行时间类型的覆盖。

若基本方法是静态的,则将其作为说明类上的确切方法调用。

将控制转移到基本方法。若方法以抛出异常而突然结束,则将异常放置在 InvocationTargetException 中,并依次抛给调用方。

若方法正常完成,则将返回值返回给调用方;若该值有一个原始类型,则首先将其恰当地打包于某对象中。若基本方法返回类型为 void, 则调用返回 null 。

抛出: IllegalAccessException
若基本方法是不可存取的。
抛出: IllegalArgumentException
若实参与形参数不同或解包转换失败。
抛出: InvocationTargetException
若基本方法抛出异常。
抛出: NullPointerException
若指定对象为 null 。

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)