モジュール java.base
パッケージ java.lang.reflect

クラスMethod

すべての実装されたインタフェース:
AnnotatedElement, GenericDeclaration, Member

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

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

導入されたバージョン:
1.1
関連項目:
MemberClassClass.getMethods()Class.getMethod(String, Class[])Class.getDeclaredMethods()Class.getDeclaredMethod(String, Class[])
  • メソッドの詳細

    • setAccessible

      public void setAccessible​(boolean flag)
      クラスからコピーされた説明:AccessibleObject
      このリフレクトされたオブジェクトのaccessibleフラグを、指定されたブール値に設定します。 trueの値は、リフレクトされたオブジェクトが使用されたときに、Java言語のアクセス制御のチェックを抑制すべきであることを示します。 falseの値は、リフレクトされたオブジェクトが、使用時にJava言語のアクセス制御をチェックし、クラスの説明に記載されているバリエーションを適用する必要があることを示します。

      このメソッドは、Cクラスの呼び出し側がdeclaring class Dmemberへのアクセスを可能にするために使用されます:

      • CDは同じモジュールにあります。
      • メンバーはpublicであり、Dはパッケージ内のpublicであり、D exportsを含むモジュールは少なくともCを含むモジュールに含まれます。
      • メンバーはprotected staticDはパッケージ内のpublicであり、Dを含むモジュールは少なくともCを含むモジュールにエクスポートし、CDのサブクラスです。
      • Dは、少なくともCを含むモジュールにD opensを含むモジュールがパッケージされています。 名前のないモジュールとオープン・モジュールのすべてのパッケージはすべてのモジュールに対してオープンであるため、このメソッドは、Dが名前のないモジュールまたはオープン・モジュールにあるときには常に成功します。

      このメソッドは、宣言クラスが呼び出し元とは異なるモジュールにあり、宣言クラスを含むパッケージが呼び出し元に対して開かれていない場合に、privateメンバー、デフォルト(package)アクセスを持つメンバー、保護されたインスタンス・メンバー、または保護されたコンストラクタ・モジュール。

      セキュリティ・マネージャがある場合、そのcheckPermissionメソッドは最初にReflectPermission("suppressAccessChecks")パーミッションで呼び出されます。

      オーバーライド:
      クラスAccessibleObjectsetAccessible
      パラメータ:
      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™仮想マシン仕様』で規定される書式に適合しない場合
      導入されたバージョン:
      1.5
    • getReturnType

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

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

      戻り型がパラメータ化された型である場合、返されるTypeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。

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

      戻り値:
      基本となるメソッドの仮の戻り値の型を表すTypeオブジェクト
      例外:
      GenericSignatureFormatError - ジェネリック・メソッドのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      TypeNotPresentException - 基本となるメソッドの戻り値の型が存在しない型宣言を参照する場合
      MalformedParameterizedTypeException - 基本となるメソッドの戻り値の型が、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合
      導入されたバージョン:
      1.5
    • getParameterCount

      public int getParameterCount()
      このオブジェクトによって表される実行可能要素の仮パラメータ(明示的に宣言されているか、暗黙的に宣言されているか、そのいずれでもないかに関係なく)の数を返します。
      オーバーライド:
      getParameterCount、クラス: Executable
      戻り値:
      このオブジェクトが表す実行可能要素の仮パラメータの数
      導入されたバージョン:
      1.8
    • getGenericParameterTypes

      public Type[] getGenericParameterTypes()
      このオブジェクトによって表される実行可能要素の仮パラメータ型を宣言順で表すTypeオブジェクトの配列を返します。 基礎となる実行可能要素にパラメータが設定されていない場合には、長さ0の配列が返されます。 内部クラスの中には、明示的に宣言されたものに加えて、暗黙的に宣言されたパラメータを持つものがあります。

      フォーマル・パラメータの型がパラメータ化された型である場合、それに対して返されるTypeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。

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

      オーバーライド:
      getGenericParameterTypes、クラス: Executable
      戻り値:
      基礎となる実行可能要素の仮パラメータ型を表す、宣言順のTypeの配列
      例外:
      GenericSignatureFormatError - ジェネリック・メソッドのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      TypeNotPresentException - 基礎となる実行可能要素のパラメータ型のいずれかが、存在しない型宣言を参照する場合
      MalformedParameterizedTypeException - 基礎となる実行可能要素のパラメータ型のいずれかが、なんらかの理由によりインスタンス化できないパラメータ化された型を参照する場合
      導入されたバージョン:
      1.5
    • getGenericExceptionTypes

      public Type[] getGenericExceptionTypes()
      このexecutableオブジェクトによってスローされることが宣言されている例外を表すTypeオブジェクトの配列を返します。 基礎となる実行可能要素がthrows節で例外を宣言していない場合は、長さ0の配列を返します。

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

      オーバーライド:
      getGenericExceptionTypes、クラス: Executable
      戻り値:
      基礎となる実行可能要素によりスローされた例外タイプを表すTypeの配列
      例外:
      GenericSignatureFormatError - ジェネリック・メソッドのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      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言語仕様』で規定された正規の順序で格納されます。 これは、publicprotected、またはprivateがまず配置され、次にほかの修飾子が次の順序で続きます: abstractdefaultstaticfinalsynchronizednativestrictfp

      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このMethodを記述する文字列
      Java言語仕様を参照してください:
      8.4.3 メソッド修飾子
      9.4メソッド宣言
      9.6.1 注釈型の要素
    • toGenericString

      public String toGenericString()
      型パラメータを含む、このMethodを記述する文字列を返します。 この文字列は、メソッド・アクセス修飾子として書式設定され、そのあとに、メソッド・タイプ・パラメータの境界線がある場合は、その次に、タイプ・パラメータの情報境界を含むインスタンス区切りのリスト(ある場合)が続き、それに続いてメソッドの汎用戻り型が続き、後ろにピリオドが続いてメソッドが宣言され、次にメソッド名が続く。 このメソッドが可変数の引数を取るように宣言されていた場合は、最後のパラメータが"Type[]"として示されるのではなく、"Type..."として示されます。 アクセス修飾子同士、およびアクセス修飾子と型パラメータや戻り値との区切りには空白文字が使用されます。 型パラメータがない場合、型パラメータのリストは省略されます。型パラメータのリストが存在する場合、リストとクラス名は空白文字で区切られます。 例外をスローするようにメソッドが宣言されている場合は、パラメータ・リストの後にスペースが続き、その後に"throws"という単語が続き、スローされたジェネリックな例外型のカンマ区切りリストが続きます。

      アクセス修飾子は、『Java言語仕様』で規定された正規の順序で格納されます。 これは、publicprotected、またはprivateがまず配置され、次にほかの修飾子が次の順序で続きます: abstractdefaultstaticfinalsynchronizednativestrictfp

      定義:
      toGenericString、クラス: Executable
      戻り値:
      型パラメータを含む、このMethodを記述する文字列
      Java言語仕様を参照してください:
      8.4.3 メソッド修飾子
      9.4メソッド宣言
      9.6.1 注釈型の要素
      導入されたバージョン:
      1.5
    • invoke

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

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

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

      基礎となるメソッドがインスタンス・メソッドの場合、Java言語仕様セクションに記載されている動的メソッド・ルックアップを使用して起動され、特に、ターゲット・オブジェクトの実行時のタイプに基づいてオーバーライドされます。

      基本となるメソッドが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, AnnotatedElement.getAnnotations()
    • getAnnotatedReturnType

      public AnnotatedType getAnnotatedReturnType()
      このExecutableによって表されるメソッドまたはコンストラクタの戻り型を指定する型の使用を表すAnnotatedTypeオブジェクトを返します。 このExecutableオブジェクトがコンストラクタを表す場合、 AnnotatedTypeオブジェクトは構築されるオブジェクトの型を表します。 このExecutableオブジェクトがメソッドを表す場合、 AnnotatedTypeオブジェクトはメソッドの戻り型を指定する型の使用を表します。
      定義:
      getAnnotatedReturnType、クラス: Executable
      戻り値:
      このExecutableが表すメソッドまたはコンストラクタの戻り型を表すオブジェクト
      導入されたバージョン:
      1.8