全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.lang.reflect. Method

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

public final class Method
extend Object
implements Member
Method は、クラスまたはインタフェース上の 1つのメソッドについての情報を提供し、そのメソッドにアクセスします。反映されるメソッドは、クラスメソッドである場合も、インスタンスメソッドである場合もあります (これには abstract メソッドも含まれます)。

Method は呼び出される実際のパラメータを基となるメソッドの正式なパラメータに合わせるときに、拡大変換を行うことを許可します。しかし、縮小変換が起きた場合には、メソッドは IllegalArgumentException をスローします

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

Method Index

 o equals(Object)
この Method を、指定されたオブジェクトと比較する。
 o getDeclaringClass()
この Method オブジェクトで表されるメソッドを宣言する、クラスまたはインタフェースを表す Class オブジェクトを返す。
 o getExceptionTypes()
この Method オブジェクトで表される基となるメソッドからスローされる確認済みの例外の型を表す、Class オブジェクトの配列を返す。
 o getModifiers()
この Method オブジェクトで表されるメソッドの Java 言語修飾子を、整数として返す。
 o getName()
この Method オブジェクトで表されるメソッド名を、String として返す。
 o getParameterTypes()
この Method オブジェクトで表されるメソッドの、正式なパラメータの型を表す Class オブジェクトの配列を宣言順に返す。
 o getReturnType()
この Method オブジェクトで表されるメソッドの、正式な返り値の型を表す Class オブジェクトを返す。
 o hashCode()
この Method のハッシュコードを返す。
 o invoke(Object, Object[])
この Method オブジェクトで表される基となるメソッドを、指定するオブジェクト上に指定するパラメータとともに呼び出す。
 o toString()
この Method を表現した文字列を返す。

Methods

 o getDeclaringClass
  public Class getDeclaringClass()
この Method オブジェクトで表されるメソッドを宣言する、クラスまたはインタフェースを表す Class オブジェクトを返します。

 o getName
  public String getName()
この Method オブジェクトで表されるメソッド名を、String として返します。

 o getModifiers
 public native int getModifiers()
この Method オブジェクトで表されるメソッドの Java 言語修飾子を、整数として返します。修飾子のデコードを行うには、Modifier クラスを使用する必要があります。

参照:
Modifier
 o getReturnType
  public Class getReturnType()
この Method オブジェクトで表されるメソッドの、正式な返り値の型を表す Class オブジェクトを返します。

 o getParameterTypes
  public Class[] getParameterTypes()
この Method オブジェクトで表されるメソッドの、正式なパラメータの型を表す Class オブジェクトの配列を宣言順に返します。基となるメソッドがパラメータを持たない場合には、長さ 0 の配列を返します。

 o getExceptionTypes
  public Class[] getExceptionTypes()
この Method オブジェクトで表される基となるメソッドからスローされる確認済みの例外の型を表すClass オブジェクトの配列を返します。メソッドが確認済みの例外を 1 つもスローしない場合は、長さ 0 の配列を返します。

 o equals
  public boolean equals(Object obj)
この Method を指定されたオブジェクトと比較します。オブジェクトが同じである場合は、true を返します。2 つの Method が同じクラスで宣言され、同じ名前を持ち、正式なパラメータ型を持つ場合には、それらは同一です。

オーバーライド:
クラス Object 内の equals
 o hashCode
  public int hashCode()
この Method のハッシュコードを返します。ハッシュコードは、基となるメソッドの宣言しているクラス名とメソッドの名前に対するハッシュコードの排他的論理和 として計算されます。

オーバーライド:
クラス Object 内の hashCode
 o toString
  public String toString()
この Method を説明した文字列を返します。この文字列は、メソッドアクセス修飾子として書式が設定されており、メソッド返り値の型、スペース、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドの正式なパラメータ型のリストが順に後に続きます。メソッドが確認済の例外をスローする場合は、パラメータリストの後に、スペース、ワードthrow 、スローされた例外型のコンマ区切りのリストの順に続きます。

例 :

    public boolean java.lang.Object.equals(java.lang.Object)
 

アクセス修飾子は、Java Language Specification (Java 言語仕様) で指定された標準的な順に置かれます。つまり、初めに publicprotected または private が置かれ、 続いて abstractstaticfinalsynchronized native が置かれます。

オーバーライド:
クラス Object 内の toString
 o invoke
 public native Object invoke(Object obj,
                             Object args[]) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
この Method オブジェクトで表される基となるメソッドを、指定するパラメータとともに指定するオブジェクト上に呼び出します。個々のパラメータは自動的にラップが解除されてプリミティブな正式なパラメータにマッチングされ、プリミティブなパラメータと参照パラメータは双方とも拡大変換が必要となります。基となるメソッドにより返される値は、その値がプリミティブな型の場合は自動的にオブジェクト内にラップされます。

メソッド呼び出しは次に示す順に進みます。

基となるメソッドが static の場合は、指定されるオブジェクトの引数は無視されます。これは null の可能性があります。

static でない場合は、メソッドはインスタンスメソッドです。指定するオブジェクト引数が null の場合は、呼び出しは NullPointerException をスローします。null 以外では、指定するオブジェクト引数が基となるメソッドを宣言するクラスまたはインタフェースでない場合は、呼び出しは IllegalArgumentException をスローします。

この Method オブジェクトにより Java 言語のアクセス制御が行われ基となるメソッドがアクセスできない場合ば、呼び出しは IllegalAccessException をスローします。

引数が出す実パラメータの数が基となるメソッドが必要とする正式なパラメータの数と違う場合は、 呼び出しは IllegalArgumentException をスローします。

出される引数配列内の実パラメータに対し :

対応する正式なパラメータがプリミティブな型の場合は、オブジェクトの値をプリミティブな型の値に変換するためラップ解除変換が試行されます。この試行が失敗する場合は、呼び出しは IllegalArgumentException をスローします。

ラップが解除された後、パラメータ値が識別情報または拡大変換により対応する正式なパラメータ型に変換できない場合は、呼び出しは IllegalArgumentException をスローします。

基となるメソッドがインスタンスメソッドの場合は、Java Language Specification のセクション 15.11.4.4 に記されているように dynamic メソッド lookup を使用して呼び出されます。この際、特に、ターゲットオブジェクトの実行時の型にもとづいたオーバーライドが起きます。

基となるメソッドが static の場合、宣言しているクラス上のメソッドとまったく同じように呼び出されます。

制御は基となるメソッドに移ります。メソッドが例外をスローして突然終了する場合は、その例外は InvocationTargetException に置かれ、invoke の呼び出し側に順にスローされます。

メソッドが正常に終了する場合は、メソッドが返す値は invoke の呼び出し側に返されます。値がプリミティブな型の場合は、値は初めにオブジェクト内に適切にラップされます。基となるメソッド返り値の型が void の場合は、 呼び出しは null を返します。

例外: IllegalAccessException
基となるメソッドがアクセス不能の場合
例外: IllegalArgumentException
実パラメータと正式なパラメータの数が異なる場合、またはラップ解除変換が失敗に終わった場合
例外: InvocationTargetException
基となるメソッドが例外をスローする場合
例外: NullPointerException
指定されるオブジェクトが null の場合

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス