|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.reflect.AccessibleObject | +--java.lang.reflect.Method
Method
は、クラスまたはインタフェース上の 1 つのメソッドについての情報を提供し、そのメソッドにアクセスします。リフレクトされたメソッドは、クラスメソッドである場合も、インスタンスメソッドである場合もあります (これには abstract メソッドも含まれる)。
Method
は呼び出される実パラメータを基となるメソッドの仮パラメータに一致させるときに、拡大変換を行うことを許可します。しかし、縮小変換が起きた場合には、メソッドは IllegalArgumentException
をスローします
Member
,
Class
,
Class.getMethods()
,
Class.getMethod(String, Class[])
,
Class.getDeclaredMethods()
,
Class.getDeclaredMethod(String, Class[])
メソッドの概要 | |
boolean |
equals(Object obj)
この Method を指定されたオブジェクトと比較します。 |
Class |
getDeclaringClass()
この Method オブジェクトで表されるメソッドを宣言する、クラスまたはインタフェースを表す Class オブジェクトを返します。 |
Class[] |
getExceptionTypes()
この Method オブジェクトによって表される基となるメソッドによってスローされるように宣言された例外の型を表す Class オブジェクトの配列を返します。 |
int |
getModifiers()
この Method オブジェクトで表されるメソッドの Java 言語修飾子を、整数として返します。 |
String |
getName()
この Method オブジェクトで表されるメソッド名を、String として返します。 |
Class[] |
getParameterTypes()
この Method オブジェクトで表されるメソッドの、仮パラメータの型を表す Class オブジェクトの配列を宣言順に返します。 |
Class |
getReturnType()
この Method オブジェクトで表されるメソッドの、正式な戻り値の型を表す Class オブジェクトを返します。 |
int |
hashCode()
この Method のハッシュコードを返します。 |
Object |
invoke(Object obj,
Object[] args)
指定されたパラメータで指定するオブジェクトについて、この Method オブジェクトで表される基になるメソッドを呼び出します。 |
String |
toString()
この Method を説明する文字列を返します。 |
クラス java.lang.reflect.AccessibleObject から継承したメソッド |
isAccessible,
setAccessible,
setAccessible |
クラス java.lang.Object から継承したメソッド |
clone,
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
メソッドの詳細 |
public Class getDeclaringClass()
Method
オブジェクトで表されるメソッドを宣言する、クラスまたはインタフェースを表す Class
オブジェクトを返します。public String getName()
Method
オブジェクトで表されるメソッド名を、String
として返します。public int getModifiers()
Method
オブジェクトで表されるメソッドの Java 言語修飾子を、整数として返します。修飾子の復号化を行うには、Modifier
クラスを使用する必要があります。Modifier
public Class getReturnType()
Method
オブジェクトで表されるメソッドの、正式な戻り値の型を表す Class
オブジェクトを返します。public Class[] getParameterTypes()
Method
オブジェクトで表されるメソッドの、仮パラメータの型を表す Class
オブジェクトの配列を宣言順に返します。基になるメソッドがパラメータを持たない場合には、長さ 0 の配列を返します。public Class[] getExceptionTypes()
Method
オブジェクトによって表される基となるメソッドによってスローされるように宣言された例外の型を表す Class
オブジェクトの配列を返します。メソッドがその throws
節で例外を宣言していない場合は、長さ 0 の配列を返します。public boolean equals(Object obj)
Method
を指定されたオブジェクトと比較します。オブジェクトが等しい場合は、true を返します。2 つの Method
は、同じクラスによって宣言されており、名前、仮パラメータ型、および戻り値の型が同じ場合に等しいと見なされます。public int hashCode()
Method
のハッシュコードを返します。ハッシュコードは、基になるメソッドの宣言クラス名とメソッドの名前に対するハッシュコードの排他的論理和として計算されます。public String toString()
Method
を説明する文字列を返します。この文字列の書式は、存在する場合はメソッドのアクセス修飾子、メソッドの戻り値の型、スペース、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドの仮パラメータ型のリストが順番に続きます。メソッドが確認済の例外をスローする場合は、パラメータリストの後に、スペース、throw という単語、スローされる例外型のコンマ区切りのリストが順番に続きます。以下に例を示します。
public boolean java.lang.Object.equals(java.lang.Object)
アクセス修飾子は、Java 言語仕様で規定された標準的な順序で格納されます。つまり、最初に public、protected または private、 続いて abstract、static、final、synchronized native が置かれます。
public Object invoke(Object obj, Object[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
Method
オブジェクトで表される基になるメソッドを呼び出します。個々のパラメータは、プリミティブな仮パラメータと一致させるために自動的にラップ解除され、プリミティブなパラメータと参照パラメータは両方とも必要に応じて拡大変換の対象になります。基になるメソッドによって返される値は、その値がプリミティブな型の場合は自動的にオブジェクト内にラップされます。
メソッド呼び出しは、次に示す順に進みます。
基になるメソッドが static の場合は、指定された obj
の引数は無視されます。これは null の可能性があります。
static でない場合、メソッドはインスタンスメソッドです。 指定されたオブジェクト引数が null の場合、呼び出しは NullPointerException
をスローします。そうでない場合、指定されたオブジェクト引数が基になるメソッド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、呼び出しは IllegalArgumentException
をスローします。
この Method
オブジェクトにより Java 言語のアクセス制御が行われて基になるメソッドがアクセスできない場合、呼び出しは IllegalAccessException
をスローします。
args
によって指定された実パラメータの数が、基になるメソッドが必要とする仮パラメータの数と異なる場合、呼び出しは IllegalArgumentException
をスローします。
args
配列によって指定された実パラメータに関して以下に説明します。
対応する仮パラメータがプリミティブな型の場合は、オブジェクトの値をプリミティブな型の値に変換するためラップ解除変換が試行されます。この試行が失敗する場合、呼び出しは IllegalArgumentException
をスローします。
ラップ解除のあと、パラメータの値がメソッド呼び出し変換によって対応する仮パラメータ型に変換できない場合、呼び出しは IllegalArgumentException
をスローします。
基になるメソッドがインスタンスメソッドの場合は、Java 言語仕様のセクション 15.11.4.4 に記述されているように、動的メソッド検索を使用して呼び出されます。この際、特に、ターゲットオブジェクトの実行時の型に基づいたオーバーライドが起きます。
基になるメソッドが static の場合、メソッドを宣言したクラスがまだ初期化されていないときは、このクラスが初期化されます。基になるメソッドは直接呼び出されます。
制御は呼び出されたメソッドに移ります。メソッドが例外をスローして終了した場合、例外は InvocationTargetException
に配置され、次に invoke の呼び出し側にスローされます。
メソッドが正常に終了する場合、メソッドが返す値は invoke の呼び出し側に返されます。値がプリミティブな型の場合、値は最初にオブジェクト内に適切にラップされます。基になるメソッドの戻り値の型が void の場合、 呼び出しは null を返します。
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |