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