public final class Method extends AccessibleObject implements GenericDeclaration, Member
Method
は、クラスまたはインタフェース上の単一のメソッドに関する情報とそのアクセスを提供します。リフレクトされたメソッドは、クラスメソッドまたはインスタンスメソッド (抽象メソッドを含む) になります。
Method
は、実パラメータを基になるメソッドの仮パラメータと一致させる場合に、拡張変換が発生することを許可しますが、縮小変換が発生する場合は IllegalArgumentException
をスローします。
修飾子と型 | メソッドと説明 |
---|---|
boolean |
equals(Object obj)
この
Method を指定されたオブジェクトと比較します。 |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合は null を返します。
|
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 を記述する文字列を返します。 |
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
public Class<?> getDeclaringClass()
Method
オブジェクトによって表されるメソッドを宣言するクラスまたはインタフェースを表す Class
オブジェクトを返します。getDeclaringClass
、インタフェース: Member
public String getName()
Method
オブジェクトによって表されるメソッドの名前を String
として返します。public int getModifiers()
Method
オブジェクトによって表されるメソッドの Java 言語修飾子を整数として返します。修飾子の復号化には、Modifier
クラスを使用する必要があります。getModifiers
、インタフェース: Member
Modifier
public TypeVariable<Method>[] getTypeParameters()
GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表す TypeVariable
オブジェクトの配列を宣言順に返します。基になるジェネリック宣言で型変数が宣言されていない場合は、長さ 0 の配列が返されます。getTypeParameters
、インタフェース: GenericDeclaration
TypeVariable
オブジェクトの配列GenericSignatureFormatError
- このジェネリック宣言のジェネリックシグニチャーが『Java™ 仮想マシン仕様』で規定される書式に適合しない場合public Class<?> getReturnType()
Method
オブジェクトによって表されるメソッドの仮の戻り値の型を表す Class
オブジェクトを返します。public Type getGenericReturnType()
Method
オブジェクトによって表されるメソッドの仮の戻り値の型を表す Type
オブジェクトを返します。
戻り値の型が、パラメータ化された型の場合、返された Type
オブジェクトは、ソースコードで使用される実際の型パラメータを正確に反映しなければいけません。
戻り値の型が、型変数またはパラメータ化された型の場合、戻り値の型は作成されます。そうでない場合、例外タイプは解決されます。
Type
オブジェクトGenericSignatureFormatError
- ジェネリックメソッドのシグニチャーが『Java™ 仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- 基本となるメソッドの戻り値の型が存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基本となるメソッドの戻り値の型が、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合public Class<?>[] getParameterTypes()
Method
オブジェクトによって表されるコンストラクタの仮パラメータ型を宣言順で表す Class
オブジェクトの配列を返します。基になるメソッドにパラメータが設定されていない場合には、長さ 0 の配列が返されます。public Type[] getGenericParameterTypes()
Method
オブジェクトによって表されるコンストラクタの仮パラメータ型を宣言順で表す Type
オブジェクトの配列を返します。基になるメソッドにパラメータが設定されていない場合には、長さ 0 の配列が返されます。
仮パラメータ型が、パラメータ化された型の場合、返される Type
オブジェクトは、ソースコードで使用される実際の型パラメータを正確に反映しなければいけません。
仮パラメータ型が、型変数またはパラメータ化された型の場合、仮パラメータ型は作成されます。そうでない場合、例外タイプは解決されます。
GenericSignatureFormatError
- ジェネリックメソッドのシグニチャーが『Java™ 仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- 基本となるメソッドのパラメータ型のいずれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基本となるメソッドのパラメータ型のいずれかが、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合public Class<?>[] getExceptionTypes()
Method
オブジェクトで表される基になるメソッドによってスローされるように宣言されている、例外の型を表す Class
オブジェクトの配列を返します。メソッドが throws
節で例外を宣言していない場合は、長さ 0 の配列を返します。public Type[] getGenericExceptionTypes()
Method
オブジェクトによってスローされることが宣言されている例外を表す Type
オブジェクトの配列を返します。基本となるメソッドが throws
節で例外を宣言していない場合は、長さ 0 の配列を返します。
例外タイプが、型変数またはパラメータ化された型の場合、例外タイプは作成されます。そうでない場合、例外タイプは解決されます。
GenericSignatureFormatError
- ジェネリックメソッドのシグニチャーが『Java™ 仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- 基本となるメソッドの throws
節が存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基本となるメソッドの throws
節が、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合public boolean equals(Object obj)
Method
を指定されたオブジェクトと比較します。オブジェクトが同じ場合には true を返します。2 つの Method
は、同じクラスで宣言され、同じ名前、仮パラメータ型、および戻り値の型を保持する場合に同じになります。equals
、クラス: Object
obj
- 比較対象の参照オブジェクト。true
、それ以外の場合は false
。Object.hashCode()
, HashMap
public int hashCode()
Method
のハッシュコードを返します。これは、基本となるメソッドの宣言クラス名とそのメソッド名のハッシュコードの排他的論理和として計算されます。hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
Method
を記述する文字列を返します。この文字列の書式は、存在する場合はメソッドのアクセス修飾子、メソッドの戻り値型、空白、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドの仮パラメータ型リストが順番に続きます。メソッドがチェック済みの例外をスローする場合、パラメータリストには、空白、スローするワード、スローされる例外タイプのコンマ区切りのリストが順番に続きます。たとえば、
public boolean java.lang.Object.equals(java.lang.Object)
アクセス修飾子は、『Java 言語仕様』で規定された正規の順序で格納されます。これは、public
、protected
、または private
がまず配置され、次にほかの修飾子が次の順序で続きます: abstract
、static
、final
、synchronized
、native
、strictfp
。
public String toGenericString()
Method
を記述する文字列を返します。この文字列の書式は、(存在する場合には) メソッドのアクセス修飾子、山括弧で囲まれたコンマ区切りのメソッドの型パラメータリスト、メソッドのジェネリック戻り値型、空白、メソッドを宣言するクラス、ピリオド、メソッド名、括弧で囲まれたコンマ区切りのメソッドのジェネリック仮パラメータ型のリストが順番に続きます。
このメソッドが可変数の引数を取るように宣言されていた場合、最後のパラメータは「Type[]」ではなく「Type...」と表されます。
アクセス修飾子同士、およびアクセス修飾子と型パラメータや戻り値との区切りには空白文字が使用されます。型パラメータがない場合、型パラメータのリストは省略されます。 型パラメータのリストが存在する場合、リストとクラス名は空白文字で区切られます。メソッドが例外をスローするように宣言されている場合、パラメータのリストのあとに空白、「throws」という文字列、スローされるジェネリック例外型のコンマ区切りのリストが順番に続きます。型パラメータがない場合、型パラメータのリストは省略されます。
アクセス修飾子は、『Java 言語仕様』で規定された正規の順序で格納されます。これは、public
、protected
、または private
がまず配置され、次にほかの修飾子が次の順序で続きます: abstract
、static
、final
、synchronized
、native
、strictfp
。
Method
を記述する文字列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
- このメソッドによる初期化に失敗した場合。public boolean isBridge()
true
を返し、そうでない場合は false
を返します。public boolean isVarArgs()
true
を返し、そうでない場合は false
を返します。true
。public boolean isSynthetic()
true
を返し、そうでない場合は false
を返します。isSynthetic
、インタフェース: Member
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
AnnotatedElement
getAnnotation
、インタフェース: AnnotatedElement
getAnnotation
、クラス: AccessibleObject
annotationClass
- 注釈型に対応する Class オブジェクトNullPointerException
- 指定された注釈クラスが null の場合public Annotation[] getDeclaredAnnotations()
AnnotatedElement
getDeclaredAnnotations
、インタフェース: AnnotatedElement
getDeclaredAnnotations
、クラス: AccessibleObject
public Object getDefaultValue()
Method
インスタンスにより表される注釈メンバーのデフォルト値を返します。プリミティブ型のメンバーの場合、対応するラッパー型のインスタンスが返されます。メンバーにデフォルト値が関連付けられていない場合、またはメソッドインスタンスが注釈型の宣言されたメンバーを表さない場合は null を返します。Method
インスタンスにより表された注釈メンバーのデフォルト値。TypeNotPresentException
- 注釈が Class
型の場合で、デフォルトのクラス値の定義が見つからない場合。public Annotation[][] getParameterAnnotations()
Method
オブジェクトにより表されたメソッドの仮パラメータの注釈を表す配列の配列を、宣言順に返します。基本となるメソッドがパラメータを含まない場合は、長さゼロの配列を返します。メソッドに 1 つ以上のパラメータがある場合、注釈を含まないパラメータごとに長さゼロの入れ子の配列を返します。返された配列に含まれる注釈オブジェクトは直列化できます。このメソッドの呼び出し元は、返された配列を自由に変更できます。 この変更は、ほかの呼び出し元に返された配列に影響を及ぼしません。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.