- すべての実装されたインタフェース:
AnnotatedElement
,GenericDeclaration
,Member
public final class Method extends Executable
Method
は、クラスまたはインタフェース上の単一のメソッドに関する情報とそのアクセスを提供します。 リフレクトされたメソッドは、クラス・メソッドまたはインスタンス・メソッド(抽象メソッドを含む)になります。
Method
は、実パラメータを基になるメソッドの仮パラメータと一致させる場合に、拡張変換が発生することを許可しますが、縮小変換が発生する場合はIllegalArgumentException
をスローします。
-
フィールドのサマリー
-
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
equals(Object obj)
このMethod
を指定されたオブジェクトと比較します。AnnotatedType
getAnnotatedReturnType()
このExecutableによって表されるメソッドまたはコンストラクタの戻り型を指定する型の使用を表すAnnotatedType
オブジェクトを返します。<T extends Annotation>
TgetAnnotation(Class<T> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]
getDeclaredAnnotations()
この要素に直接存在する注釈を返します。Class<?>
getDeclaringClass()
このオブジェクトが表すメソッドを宣言するクラスまたはインタフェースを表すClass
オブジェクトを返します。Object
getDefaultValue()
このMethod
インスタンスにより表される注釈メンバーのデフォルト値を返します。Type[]
getGenericExceptionTypes()
このexecutableオブジェクトによってスローされることが宣言されている例外を表すType
オブジェクトの配列を返します。Type[]
getGenericParameterTypes()
このオブジェクトによって表される実行可能要素の仮パラメータ型を宣言順で表すType
オブジェクトの配列を返します。Type
getGenericReturnType()
このMethod
オブジェクトによって表されるメソッドの仮の戻り値の型を表すType
オブジェクトを返します。String
getName()
Method
オブジェクトによって表されるメソッドの名前をString
として返します。Annotation[][]
getParameterAnnotations()
このオブジェクトによって表されるExecutable
の仮パラメータの注釈を表すAnnotation
の配列の配列を、宣言順に返します。int
getParameterCount()
このオブジェクトによって表される実行可能要素の仮パラメータ(明示的に宣言されているか、暗黙的に宣言されているか、そのいずれでもないかに関係なく)の数を返します。Class<?>
getReturnType()
このMethod
オブジェクトによって表されるメソッドの仮の戻り値の型を表すClass
オブジェクトを返します。TypeVariable<Method>[]
getTypeParameters()
GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariable
オブジェクトの配列を宣言順に返します。int
hashCode()
このMethod
のハッシュ・コードを返します。Object
invoke(Object obj, Object... args)
このMethod
オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。boolean
isBridge()
このメソッドがブリッジ・メソッドである場合はtrue
を返し、そうでない場合はfalse
を返します。boolean
isDefault()
このメソッドがデフォルト・メソッドである場合はtrue
を返し、そうでない場合はfalse
を返します。boolean
isSynthetic()
この実行可能要素が合成構造である場合はtrue
を返し、そうでない場合はfalse
を返します。boolean
isVarArgs()
この実行可能要素が可変数の引数を取るように宣言されていた場合はtrue
を返し、そうでない場合はfalse
を返します。void
setAccessible(boolean flag)
このリフレクトされたオブジェクトのaccessible
フラグを、指定されたブール値に設定します。String
toGenericString()
型パラメータを含む、このMethod
を記述する文字列を返します。String
toString()
このMethod
を記述する文字列を返します。クラス java.lang.reflect.Executableで宣言されたメソッド
getAnnotatedExceptionTypes, getAnnotatedParameterTypes, getAnnotatedReceiverType, getAnnotationsByType, getExceptionTypes, getModifiers, getParameters, getParameterTypes
クラス java.lang.reflect.AccessibleObjectで宣言されたメソッド
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, trySetAccessible
インタフェース java.lang.reflect.AnnotatedElementで宣言されたメソッド
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
-
メソッドの詳細
-
setAccessible
public void setAccessible(boolean flag)クラスからコピーされた説明:AccessibleObject
このリフレクトされたオブジェクトのaccessible
フラグを、指定されたブール値に設定します。true
の値は、リフレクトされたオブジェクトが使用されたときに、Java言語のアクセス制御のチェックを抑制すべきであることを示します。false
の値は、リフレクトされたオブジェクトが、使用時にJava言語のアクセス制御をチェックし、クラスの説明に記載されているバリエーションを適用する必要があることを示します。このメソッドは、
C
クラスの呼び出し側がdeclaring class
D
のmember
へのアクセスを可能にするために使用されます:-
C
とD
は同じモジュールにあります。 - メンバーは
public
であり、D
はパッケージ内のpublic
であり、D
exports
を含むモジュールは少なくともC
を含むモジュールに含まれます。 - メンバーは
protected
static
、D
はパッケージ内のpublic
であり、D
を含むモジュールは少なくともC
を含むモジュールにエクスポートし、C
はD
のサブクラスです。 -
D
は、少なくともC
を含むモジュールにD
opens
を含むモジュールがパッケージされています。 名前のないモジュールとオープン・モジュールのすべてのパッケージはすべてのモジュールに対してオープンであるため、このメソッドは、D
が名前のないモジュールまたはオープン・モジュールにあるときには常に成功します。
このメソッドは、宣言クラスが呼び出し元とは異なるモジュールにあり、宣言クラスを含むパッケージが呼び出し元に対して開かれていない場合に、privateメンバー、デフォルト(package)アクセスを持つメンバー、保護されたインスタンス・メンバー、または保護されたコンストラクタ・モジュール。
このメソッドを使用して、non-modifiable最終フィールドへのwriteアクセスを有効にすることはできません。 次のフィールドは変更できません:
true
がJava言語アクセス制御チェックを抑制して、これらの変更不可能な最終フィールドへのreadアクセスのみを有効にする場合のaccessible
フラグ。セキュリティ・マネージャがある場合、その
checkPermission
メソッドは最初にReflectPermission("suppressAccessChecks")
パーミッションで呼び出されます。- オーバーライド:
- クラス
AccessibleObject
のsetAccessible
- パラメータ:
flag
-accessible
フラグの新しい値- 例外:
InaccessibleObjectException
- アクセスを有効にできない場合SecurityException
- リクエストがセキュリティ・マネージャによって拒否された場合- 関連項目:
AccessibleObject.trySetAccessible()
,MethodHandles.privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles.Lookup)
-
-
getDeclaringClass
public Class<?> getDeclaringClass()このオブジェクトが表すメソッドを宣言するクラスまたはインタフェースを表すClass
オブジェクトを返します。- 定義:
getDeclaringClass
、インタフェース:Member
- 定義:
getDeclaringClass
、クラス:Executable
- 戻り値:
- 基本となるメンバーの宣言クラスを表すオブジェクト
-
getName
public String getName()Method
オブジェクトによって表されるメソッドの名前をString
として返します。- 定義:
getName
、インタフェース:Member
- 定義:
getName
、クラス:Executable
- 戻り値:
- 基本となるメンバーの単純名
-
getTypeParameters
public TypeVariable<Method>[] getTypeParameters()GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariable
オブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。- 定義:
getTypeParameters
、インタフェース:GenericDeclaration
- 定義:
getTypeParameters
、クラス:Executable
- 戻り値:
- このジェネリック宣言で宣言された型変数を表す
TypeVariable
オブジェクトの配列 - 例外:
GenericSignatureFormatError
- このジェネリック宣言のジェネリック・シグネチャが「Java Virtual Machine仕様」で指定された形式に準拠していない場合- 導入されたバージョン:
- 1.5
-
getReturnType
public Class<?> getReturnType()このMethod
オブジェクトによって表されるメソッドの仮の戻り値の型を表すClass
オブジェクトを返します。- 戻り値:
- このオブジェクトが表すメソッドの戻り値の型
-
getGenericReturnType
public Type getGenericReturnType()このMethod
オブジェクトによって表されるメソッドの仮の戻り値の型を表すType
オブジェクトを返します。戻り型がパラメータ化された型である場合、返される
Type
オブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。戻り値の型が、型変数またはパラメータ化された型の場合、戻り値の型は作成されます。 そうでない場合、例外タイプは解決されます。
- 戻り値:
- 基本となるメソッドの仮の戻り値の型を表す
Type
オブジェクト - 例外:
GenericSignatureFormatError
- 汎用メソッド・シグネチャが「Java Virtual Machine仕様」で指定された形式に準拠していない場合TypeNotPresentException
- 基本となるメソッドの戻り値の型が存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基本となるメソッドの戻り値の型が、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
- 1.5
-
getParameterCount
public int getParameterCount()このオブジェクトによって表される実行可能要素の仮パラメータ(明示的に宣言されているか、暗黙的に宣言されているか、そのいずれでもないかに関係なく)の数を返します。- オーバーライド:
getParameterCount
、クラス:Executable
- 戻り値:
- このオブジェクトが表す実行可能要素の仮パラメータの数
- 導入されたバージョン:
- 1.8
-
getGenericParameterTypes
public Type[] getGenericParameterTypes()このオブジェクトによって表される実行可能要素の仮パラメータ型を宣言順で表すType
オブジェクトの配列を返します。 基礎となる実行可能要素にパラメータが設定されていない場合には、長さ0の配列が返されます。 内部クラスの中には、明示的に宣言されたものに加えて、暗黙的に宣言されたパラメータを持つものがあります。フォーマル・パラメータの型がパラメータ化された型である場合、それに対して返される
Type
オブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。仮パラメータ型が、型変数またはパラメータ化された型の場合、仮パラメータ型は作成されます。 そうでない場合、例外タイプは解決されます。
- オーバーライド:
getGenericParameterTypes
、クラス:Executable
- 戻り値:
- 基礎となる実行可能要素の仮パラメータ型を表す、宣言順の
Type
の配列 - 例外:
GenericSignatureFormatError
- 汎用メソッド・シグネチャが「Java Virtual Machine仕様」で指定された形式に準拠していない場合TypeNotPresentException
- 基礎となる実行可能要素のパラメータ型のいずれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基礎となる実行可能要素のパラメータ型のいずれかが、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
- 1.5
-
getGenericExceptionTypes
public Type[] getGenericExceptionTypes()このexecutableオブジェクトによってスローされることが宣言されている例外を表すType
オブジェクトの配列を返します。 基礎となる実行可能要素がthrows
節で例外を宣言していない場合は、長さ0の配列を返します。例外タイプが、型変数またはパラメータ化された型の場合、例外タイプは作成されます。 そうでない場合、例外タイプは解決されます。
- オーバーライド:
getGenericExceptionTypes
、クラス:Executable
- 戻り値:
- 基礎となる実行可能要素によりスローされた例外タイプを表すTypeの配列
- 例外:
GenericSignatureFormatError
- 汎用メソッド・シグネチャが「Java Virtual Machine仕様」で指定された形式に準拠していない場合TypeNotPresentException
- 基礎となる実行可能要素のthrows
節が存在しない型宣言を参照する場合MalformedParameterizedTypeException
- 基礎となる実行可能要素のthrows
節が、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
- 1.5
-
equals
public boolean equals(Object obj)このMethod
を指定されたオブジェクトと比較します。 オブジェクトが同じ場合にはtrueを返します。 2つのMethod
は、同じクラスで宣言され、同じ名前、仮パラメータ型、および戻り値の型を保持する場合に同じになります。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- 比較対象の参照オブジェクト。- 戻り値:
- このオブジェクトがobj引数と同じである場合は
true
、それ以外の場合はfalse
。 - 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()このMethod
のハッシュ・コードを返します。 これは、基本となるメソッドの宣言クラス名とそのメソッド名のハッシュ・コードの排他的論理和として計算されます。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()このMethod
を記述する文字列を返します。 この文字列の書式は、存在する場合はメソッドのアクセス修飾子、メソッドの戻り値型、空白、メソッドを宣言するクラス、ピリオド、メソッド名、カッコで囲まれたカンマ区切りのメソッドの仮パラメータ型リストが順番に続きます。 メソッドがチェックされた例外をスローすると、パラメータ・リストの後ろにスペースが続き、その後にスラングされた例外型のコンマ区切りリストが続く"throws
"という単語が続きます。 次に例を示します。public boolean java.lang.Object.equals(java.lang.Object)
アクセス修飾子は、『Java言語仕様』で規定された正規の順序で格納されます。 これは、
public
、protected
、またはprivate
がまず配置され、次にほかの修飾子が次の順序で続きます:abstract
、default
、static
、final
、synchronized
、native
、strictfp
。- オーバーライド:
toString
、クラス:Object
- 戻り値:
- この
Method
を記述する文字列 - Java言語仕様を参照してください:
-
8.4.3 メソッド修飾子
9.4メソッド宣言
9.6.1 注釈型の要素
-
toGenericString
public String toGenericString()型パラメータを含む、このMethod
を記述する文字列を返します。 この文字列は、メソッド・アクセス修飾子として書式設定され、そのあとに、メソッド・タイプ・パラメータの境界線がある場合は、その次に、タイプ・パラメータの情報境界を含むインスタンス区切りのリスト(ある場合)が続き、それに続いてメソッドの汎用戻り型が続き、後ろにピリオドが続いてメソッドが宣言され、次にメソッド名が続く。 このメソッドが可変数の引数を取るように宣言されていた場合は、最後のパラメータが"Type[]
"として示されるのではなく、"Type...
"として示されます。 アクセス修飾子同士、およびアクセス修飾子と型パラメータや戻り値との区切りには空白文字が使用されます。 型パラメータがない場合、型パラメータのリストは省略されます。型パラメータのリストが存在する場合、リストとクラス名は空白文字で区切られます。 例外をスローするようにメソッドが宣言されている場合は、パラメータ・リストの後にスペースが続き、その後に"throws
"という単語が続き、スローされたジェネリックな例外型のカンマ区切りリストが続きます。アクセス修飾子は、『Java言語仕様』で規定された正規の順序で格納されます。 これは、
public
、protected
、またはprivate
がまず配置され、次にほかの修飾子が次の順序で続きます:abstract
、default
、static
、final
、synchronized
、native
、strictfp
。- 定義:
toGenericString
、クラス:Executable
- 戻り値:
- 型パラメータを含む、この
Method
を記述する文字列 - Java言語仕様を参照してください:
-
8.4.3 メソッド修飾子
9.4メソッド宣言
9.6.1 注釈型の要素 - 導入されたバージョン:
- 1.5
-
invoke
public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetExceptionこのMethod
オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。 個別のパラメータは、プリミティブ仮パラメータと一致させるために自動的にラップ解除され、プリミティブおよび参照パラメータは両方とも必要に応じてメソッド呼出し変換の対象になります。基本となるメソッドがstaticの場合、指定された
obj
引数は無視されます。 nullも指定できる。基本となるメソッドによって要求される仮パラメータ数が0の場合、指定された
args
配列は長さ0またはnullになります。基礎となるメソッドがインスタンス・メソッドの場合は、The Java Language Specificationの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
を返します。- オーバーライド:
isVarArgs
、クラス:Executable
- 戻り値:
- この実行可能要素が可変数の引数を取るように宣言されていた場合に限り
true
。 - 導入されたバージョン:
- 1.5
-
isSynthetic
public boolean isSynthetic()この実行可能要素が合成構造である場合はtrue
を返し、そうでない場合はfalse
を返します。- 定義:
isSynthetic
、インタフェース:Member
- オーバーライド:
isSynthetic
、クラス:Executable
- 戻り値:
- この実行可能ファイルが「Java言語仕様」で定義された合成構造である場合にのみtrue。
- Java言語仕様を参照してください:
-
13.1 バイナリの形式
- 導入されたバージョン:
- 1.5
-
isDefault
public boolean isDefault()このメソッドがデフォルト・メソッドである場合はtrue
を返し、そうでない場合はfalse
を返します。 デフォルト・メソッドは、publicの非abstractインスタンス・メソッドです。つまり、インタフェース型で宣言されている、本体を持つ非staticメソッドです。- 戻り値:
- このメソッドが、『Java言語仕様』で定義されているデフォルト・メソッドである場合に限り、true
- 導入されたバージョン:
- 1.8
-
getDefaultValue
public Object getDefaultValue()このMethod
インスタンスにより表される注釈メンバーのデフォルト値を返します。 プリミティブ型のメンバーの場合、対応するラッパー型のインスタンスが返されます。 メンバーにデフォルト値が関連付けられていない場合、またはメソッド・インスタンスが注釈型の宣言されたメンバーを表さない場合はnullを返します。- 戻り値:
- この
Method
インスタンスにより表された注釈メンバーのデフォルト値。 - 例外:
TypeNotPresentException
- 注釈がClass
型の場合で、デフォルトのクラス値の定義が見つからない場合。- 導入されたバージョン:
- 1.5
-
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getAnnotation
、インタフェース:AnnotatedElement
- オーバーライド:
getAnnotation
、クラス:Executable
- 型パラメータ:
T
- 照会し、存在する場合に返す注釈の型。- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.5
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getDeclaredAnnotations
、インタフェース:AnnotatedElement
- オーバーライド:
getDeclaredAnnotations
、クラス:AccessibleObject
- 戻り値:
- この要素に直接存在する注釈
- 導入されたバージョン:
- 1.5
-
getParameterAnnotations
public Annotation[][] getParameterAnnotations()このオブジェクトによって表されるExecutable
の仮パラメータの注釈を表すAnnotation
の配列の配列を、宣言順に返します。 返される配列では、内部クラス・コンストラクタに対する外部のthisパラメータなど、合成および必須パラメータ(次の説明を参照)が表されます。 実行可能要素がパラメータを持たない(つまり、仮パラメータも合成パラメータも必須パラメータも持たない)場合は、長さ0の配列が返されます。実行可能要素
に1つ以上のパラメータがある場合、注釈を含まないパラメータごとに長さゼロの入れ子の配列を返します。 返された配列に含まれる注釈オブジェクトは直列化できます。 このメソッドの呼出し元は、返された配列を自由に変更できます。この変更は、ほかの呼出し元に返された配列に影響を及ぼしません。 コンパイラによって、ソースで暗黙的に宣言されている追加のパラメータ("必須")、およびソースで暗黙的にも明示的にも宣言されていないパラメータ("合成")がメソッドのパラメータ・リストに追加されることがあります。 詳細は、Parameter
を参照してください。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
getParameterAnnotations
、クラス:Executable
- 戻り値:
- このオブジェクトにより表された実行可能要素の仮パラメータおよび暗黙的なパラメータの注釈を表す宣言順の配列の配列
- 導入されたバージョン:
- 1.5
- 関連項目:
Parameter
,Parameter.getAnnotations()
-
getAnnotatedReturnType
public AnnotatedType getAnnotatedReturnType()このExecutableによって表されるメソッドまたはコンストラクタの戻り型を指定する型の使用を表すAnnotatedType
オブジェクトを返します。 このExecutable
オブジェクトがコンストラクタを表す場合、AnnotatedType
オブジェクトは構築されるオブジェクトの型を表します。 このExecutable
オブジェクトがメソッドを表す場合、AnnotatedType
オブジェクトはメソッドの戻り型を指定する型の使用を表します。- 定義:
getAnnotatedReturnType
、クラス:Executable
- 戻り値:
- この
Executable
が表すメソッドまたはコンストラクタの戻り型を表すオブジェクト - 導入されたバージョン:
- 1.8
-