JavaTM 2 Platform
Standard Ed. 5.0

java.lang.reflect
クラス Method

java.lang.Object
  上位を拡張 java.lang.reflect.AccessibleObject
      上位を拡張 java.lang.reflect.Method
すべての実装されたインタフェース:
AnnotatedElement, GenericDeclaration, Member

public final class Method
extends AccessibleObject
implements GenericDeclaration, Member

Method は、クラスまたはインタフェース上の単一のメソッドに関する情報とそのアクセスを提供します。リフレクトされたメソッドは、クラスメソッドまたはインスタンスメソッド (抽象メソッドを含む) になります。

Method は、実パラメータを基になるメソッドの仮パラメータと一致させる場合に、拡張変換が発生することを許可しますが、縮小変換が発生する場合は IllegalArgumentException をスローします。

関連項目:
Member, Class, Class.getMethods(), Class.getMethod(String, Class[]), Class.getDeclaredMethods(), Class.getDeclaredMethod(String, Class[])

フィールドの概要
 
インタフェース java.lang.reflect.Member から継承されたフィールド
DECLARED, PUBLIC
 
メソッドの概要
 boolean equals(Object obj)
          Method を指定されたオブジェクトと比較します。
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
          指定された型の注釈が存在する場合は、指定された型の要素の注釈を返します。
 Annotation[] getDeclaredAnnotations()
          この要素に直接存在するすべての注釈を返します。
 Class<?> getDeclaringClass()
          この Method オブジェクトによって表されるメソッドを宣言するクラスまたはインタフェースを表す Class オブジェクトを返します。
 Object getDefaultValue()
          この Method インスタンスにより表される注釈メンバのデフォルト値を返します。
 Class<?>[] getExceptionTypes()
          この Method オブジェクトで表される基になるメソッドによってスローされるように宣言されている、例外のタイプを表す Class オブジェクトの配列を返します。
 Type[] getGenericExceptionTypes()
          この Method オブジェクトによってスローされるように宣言されている、例外を表す Type オブジェクトの配列を返します。
 Type[] getGenericParameterTypes()
          Method オブジェクトによって表されるメソッドの仮パラメータ型を宣言順で表す Type オブジェクトの配列を返します。
 Type getGenericReturnType()
          この Method オブジェクトによって表されるメソッドの仮の戻り値の型を表す Type オブジェクトを返します。
 int getModifiers()
          Method オブジェクトによって表されるメソッドの Java 言語修飾子を整数として返します。
 String getName()
          この Method オブジェクトが表すメソッドの名前を String として返します。
 Annotation[][] getParameterAnnotations()
          この Method オブジェクトにより表されたメソッドの仮パラメータの注釈を表す配列の配列を、宣言順に返します。
 Class<?>[] getParameterTypes()
          Method オブジェクトによって表されるメソッドの仮パラメータ型を宣言順で表す Class オブジェクトの配列を返します。
 Class<?> getReturnType()
          この Method オブジェクトによって表されるメソッドの仮の戻り値の型を表す Class オブジェクトを返します。
 TypeVariable<Method>[] getTypeParameters()
          GenericDeclaration オブジェクトによって表される汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列を宣言順に返します。
 int hashCode()
          Method のハッシュコードを返します。
 Object invoke(Object obj, Object... args)
          この Method オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。
 boolean isBridge()
          このメソッドが橋渡し役のメソッドである場合は true を返し、そうでない場合は false を返します。
 boolean isSynthetic()
          このメソッドが合成メソッドである場合は true を返し、そうでない場合は false を返します。
 boolean isVarArgs()
          このメソッドが可変数の引数を取るように宣言されていた場合は true を返し、そうでない場合は false を返します。
 String toGenericString()
          型パラメータを含む、この Method を記述する文字列を返します。
 String toString()
          この Method を記述する文字列を返します。
 
クラス java.lang.reflect.AccessibleObject から継承されたメソッド
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getDeclaringClass

public Class<?> getDeclaringClass()
この Method オブジェクトによって表されるメソッドを宣言するクラスまたはインタフェースを表す Class オブジェクトを返します。

定義:
インタフェース Member 内の getDeclaringClass
戻り値:
基本となるメンバの宣言クラスを表すオブジェクト

getName

public String getName()
この Method オブジェクトが表すメソッドの名前を String として返します。

定義:
インタフェース Member 内の getName
戻り値:
基本となるメンバの単純名

getModifiers

public int getModifiers()
Method オブジェクトによって表されるメソッドの Java 言語修飾子を整数として返します。修飾子の復号化には、Modifier クラスを使用する必要があります。

定義:
インタフェース Member 内の getModifiers
戻り値:
基本となるメンバの Java 言語修飾子
関連項目:
Modifier

getTypeParameters

public TypeVariable<Method>[] getTypeParameters()
GenericDeclaration オブジェクトによって表される汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列を宣言順に返します。基になる汎用的な宣言で型変数が宣言されていない場合は、長さ 0 の配列が返されます。

定義:
インタフェース GenericDeclaration 内の getTypeParameters
戻り値:
この汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列
例外:
GenericSignatureFormatError - この汎用的な宣言の汎用的な署名が『Java 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
導入されたバージョン:
1.5

getReturnType

public Class<?> getReturnType()
この Method オブジェクトによって表されるメソッドの仮の戻り値の型を表す Class オブジェクトを返します。

戻り値:
このオブジェクトが表すメソッドの戻り値の型

getGenericReturnType

public Type getGenericReturnType()
この Method オブジェクトによって表されるメソッドの仮の戻り値の型を表す Type オブジェクトを返します。

戻り値の型が、パラメータ化された型の場合、返された Type オブジェクトは、ソースコードで使用される実際の型パラメータを正確に反映しなければなりません。

戻り値の型が、型変数またはパラメータ化された型の場合、戻り値の型は作成されます。そうでない場合、戻り値の型は解決されます。

戻り値:
基本となるメソッドの仮の戻り値の型を表す Type オブジェクトを返す
例外:
GenericSignatureFormatError - この汎用的なメソッドの署名が『Java 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
TypeNotPresentException - 基本となるメソッドの戻り値の型が存在しない型宣言を参照する場合
MalformedParameterizedTypeException - 基本となるメソッドの戻り値の型が、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
導入されたバージョン:
1.5

getParameterTypes

public Class<?>[] getParameterTypes()
Method オブジェクトによって表されるメソッドの仮パラメータ型を宣言順で表す Class オブジェクトの配列を返します。基になるメソッドにパラメータが設定されていない場合には、長さ 0 の配列が返されます。

戻り値:
このオブジェクトが表すメソッドのパラメータ型

getGenericParameterTypes

public Type[] getGenericParameterTypes()
Method オブジェクトによって表されるメソッドの仮パラメータ型を宣言順で表す Type オブジェクトの配列を返します。基になるメソッドにパラメータが設定されていない場合には、長さ 0 の配列が返されます。

仮パラメータ型が、パラメータ化された型の場合、返される Type オブジェクトは、ソースコードで使用される実際の型パラメータを正確に反映しなければなりません。

仮パラメータ型が、型変数またはパラメータ化された型の場合、仮パラメータ型は作成されます。そうでない場合、仮パラメータ型は解決されます。

戻り値:
基本となるメソッドの仮パラメータ型を表す宣言順の Type の配列
例外:
GenericSignatureFormatError - この汎用的なメソッドの署名が『Java 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
TypeNotPresentException - 基本となるメソッドのパラメータ型のどれかが、存在しない型宣言を参照する場合
MalformedParameterizedTypeException - 基本となるメソッドのパラメータ型のどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
導入されたバージョン:
1.5

getExceptionTypes

public Class<?>[] getExceptionTypes()
この Method オブジェクトで表される基になるメソッドによってスローされるように宣言されている、例外のタイプを表す Class オブジェクトの配列を返します。メソッドが throws 節で例外を宣言していない場合は、長さ 0 の配列を返します。

戻り値:
宣言される例外タイプ。このオブジェクトが表すメソッドによりスローされる

getGenericExceptionTypes

public Type[] getGenericExceptionTypes()
この Method オブジェクトによってスローされるように宣言されている、例外を表す Type オブジェクトの配列を返します。基本となるメソッドが throws 節で例外を宣言していない場合は、長さ 0 の配列を返します。

例外タイプが、パラメータ化された型の場合、返される Type オブジェクトは、ソースコードで使用される実際の型パラメータを正確に反映しなければなりません。

例外タイプが、型変数またはパラメータ化された型の場合、例外タイプは作成されます。そうでない場合、例外タイプは解決されます。

戻り値:
基本となるメソッドによりスローされた例外タイプを表す Type の配列
例外:
GenericSignatureFormatError - この汎用的なメソッドの署名が『Java 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
TypeNotPresentException - 基本となるメソッドの throws 節が存在しない型宣言を参照する場合
MalformedParameterizedTypeException - 基本となるメソッドの throws 節が、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
導入されたバージョン:
1.5

equals

public boolean equals(Object obj)
Method を指定されたオブジェクトと比較します。オブジェクトが同じ場合には true を返します。2 つの Methods は、同じクラスで宣言され、同じ名前、仮パラメータ型、および戻り値の型を保持する場合に同じになります。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
Method のハッシュコードを返します。これは、基本となるメソッドの宣言クラス名とそのメソッド名のハッシュコードの排他的論理和として計算されます。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
この Method を記述する文字列を返します。この文字列の書式は、存在する場合はメソッドのアクセス修飾子、メソッドの戻り値型、空白、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドの仮パラメータ型リストが順番に続きます。メソッドがチェック済みの例外をスローする場合、パラメータリストには、空白、スローするワード、スローされる例外タイプのコンマ区切りのリストが順番に続きます。次に例を示します。

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

アクセス修飾子は、『Java 言語仕様』で規定された標準的な順序で格納されます。つまり、最初に publicprotected、または private、続いてそれ以外の修飾子が abstractstaticfinalsynchronized native の順序で置かれます。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現

toGenericString

public String toGenericString()
型パラメータを含む、この Method を記述する文字列を返します。この文字列の書式は、(存在する場合には) メソッドのアクセス修飾子、山括弧で囲まれたコンマ区切りのメソッドの型パラメータリスト、メソッドの汎用的な戻り値型、空白、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドの汎用仮パラメータ型のリストが順番に続きます。アクセス修飾子同士、およびアクセス修飾子と型パラメータや戻り値との区切りには空白文字が使用されます。型パラメータがない場合、型パラメータのリストは省略されます。型パラメータのリストが存在する場合、リストとクラス名は空白文字で区切られます。メソッドが例外をスローするように宣言されている場合、パラメータのリストのあとに空白、「throws」という文字列、スローされる汎用的な例外型のコンマ区切りのリストが順番に続きます。型パラメータがない場合、型パラメータのリストは省略されます。

アクセス修飾子は、『Java 言語仕様』で規定された標準的な順序で格納されます。つまり、最初に publicprotected、または private、続いてそれ以外の修飾子が abstractstaticfinalsynchronized native の順序で置かれます。

戻り値:
型パラメータを含む、この Method を記述する文字列
導入されたバージョン:
1.5

invoke

public Object invoke(Object obj,
                     Object... args)
              throws IllegalAccessException,
                     IllegalArgumentException,
                     InvocationTargetException
この Method オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。個別のパラメータは、プリミティブ仮パラメータと一致させるために自動的にラップ解除され、プリミティブおよび参照パラメータは両方とも必要に応じてメソッド呼び出し変換の対象になります。

基本となるメソッドが static の場合、指定された obj 引数は無視されます。この引数が null の場合もあります。

基本となるメソッドによって要求される仮パラメータ数が 0 の場合、指定された args 配列は長さ 0 または null になります。

基本となるメソッドがインスタンスメソッドの場合、動的メソッドルックアップを使用して呼び出しが行われ、ターゲットオブジェクトの実行時の型に基づいてオーバーライドが実行されます (『Java 言語仕様第 2 版』のセクション 15.12.4.4 を参照)。

基本となるメソッドが static の場合、メソッドを宣言したクラスがまだ初期化されていないときは、このクラスが初期化されます。

メソッドが正常に完了すると、メソッドの返す値が呼び出し側に返されます。この値がプリミティブ型の場合、最初にオブジェクト内に適切な方法でラップされます。ただし、値がプリミティブ型の配列型を持つ場合、その配列の要素はオブジェクトにラップされません。つまり、プリミティブ型の配列が返されます。基本となるメソッドの戻り値の型が void の場合、呼び出しは null を返します。

パラメータ:
obj - 基本となるメソッドの呼び出し元のオブジェクト
args - メソッド呼び出しに使用される引数
戻り値:
このオブジェクトが表すメソッドを、パラメータ args を使用して obj にディスパッチした結果
例外:
IllegalAccessException - この Method オブジェクトが Java 言語アクセス制御を実施し、基本となるメソッドにアクセスできない場合
IllegalArgumentException - メソッドがインスタンスメソッドであり、指定されたオブジェクト引数が基本となるメソッド (またはそのサブクラスか実装側) を宣言するクラスまたはインタフェースのインスタンスではない場合、実パラメータ数と仮パラメータ数が異なる場合、プリミティブ引数のラップ解除変換が失敗した場合、またはラップ解除後、メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合
InvocationTargetException - 基本となるメソッドが例外をスローする場合
NullPointerException - 指定されたオブジェクトが null で、メソッドがインスタンスメソッドの場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合

isBridge

public boolean isBridge()
このメソッドが橋渡し役のメソッドである場合は true を返し、そうでない場合は false を返します。

戻り値:
このメソッドが、『Java 言語仕様』で定義されている橋渡し役のメソッドである場合に限り、true
導入されたバージョン:
1.5

isVarArgs

public boolean isVarArgs()
このメソッドが可変数の引数を取るように宣言されていた場合は true を返し、そうでない場合は false を返します。

戻り値:
このメソッドが可変数の引数を取るように宣言されていた場合に限り true
導入されたバージョン:
1.5

isSynthetic

public boolean isSynthetic()
このメソッドが合成メソッドである場合は true を返し、そうでない場合は false を返します。

定義:
インタフェース Member 内の isSynthetic
戻り値:
このメソッドが、『Java 言語仕様』で定義されている合成メソッドである場合に限り、true
導入されたバージョン:
1.5

getAnnotation

public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
インタフェース AnnotatedElement の記述:
指定された型の注釈が存在する場合は、指定された型の要素の注釈を返します。そうでない場合は null を返します。

定義:
インタフェース AnnotatedElement 内の getAnnotation
オーバーライド:
クラス AccessibleObject 内の getAnnotation
パラメータ:
annotationClass - 注釈型に対応する Class オブジェクト
戻り値:
存在する場合は、指定された注釈型の要素の注釈。そうでない場合は null

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()
インタフェース AnnotatedElement の記述:
この要素に直接存在するすべての注釈を返します。このインタフェースにある他のメソッドとは異なり、このメソッドは継承された注釈を無視します (この要素に注釈が直接存在しない場合は長さゼロの配列を返す)。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、他の呼び出し元に返された配列に影響を及ぼしません。

定義:
インタフェース AnnotatedElement 内の getDeclaredAnnotations
オーバーライド:
クラス AccessibleObject 内の getDeclaredAnnotations
戻り値:
この要素に直接存在するすべての注釈

getDefaultValue

public Object getDefaultValue()
この Method インスタンスにより表される注釈メンバのデフォルト値を返します。プリミティブ型のメンバの場合、対応するラッパー型のインスタンスが返されます。メンバにデフォルト値が関連付けられていない場合、またはメソッドインスタンスが注釈型の宣言されたメンバを表さない場合は null を返します。

戻り値:
この Method インスタンスにより表された注釈メンバのデフォルト値
例外:
TypeNotPresentException - 注釈が Class 型の場合で、デフォルトのクラス値の定義が見つからない場合
導入されたバージョン:
1.5

getParameterAnnotations

public Annotation[][] getParameterAnnotations()
この Method オブジェクトにより表されたメソッドの仮パラメータの注釈を表す配列の配列を、宣言順に返します。基本となるメソッドがパラメータを含まない場合は、長さゼロの配列を返します。メソッドに 1 つ以上のパラメータがある場合、注釈を含まないパラメータごとに長さゼロの入れ子の配列を返します。返された配列に含まれる注釈オブジェクトは直列化できます。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、ほかの呼び出し元に返された配列に影響を及ぼしません。

戻り値:
この Method オブジェクトにより表されたメソッドの仮パラメータの注釈を表す宣言順の配列の配列
導入されたバージョン:
1.5

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。